如何使用 JRadioButtons 改变组合框
How to use JRadioButtons to change a ComboBox
我如何使用 RadioButton select 组合框中显示的内容,即单击(按钮(男)或(女))
并获得一个下拉组合框,显示 (combobox(Mr, master) 或 (Mrs,miss))
在过去的几个小时里,我一直在努力找出可行的方法。
我以为我需要的只是创建一个 actionListener 来根据单击的按钮为组合框设置不同的数组,但我似乎无处可去。
这是我目前所拥有的
`male = new JRadioButton("Male", true);
female = new JRadioButton("Female", false);
add(male);
add(female);
buttonGroup = new ButtonGroup();
buttonGroup.add(male);
buttonGroup.add(female);
radioListener radio = new radioListener();
male.addActionListener(radio);
female.addActionListener(radio);
JComboBox nameTitle = new JComboBox();
add(nameTitle);`
}
public class radioListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
if(male.isSelected()) nameTitle.setSelectedItem(maleTitles);
if(female.isSelected()) nameTitle.setSelectedItem(femaleTitles);
}
}
开始于
这将帮助您设置按钮、设置按钮组并编写 ActionListener
,当其中一个按钮被选中时将触发。
然后转到 How to Use Combo Boxes,这将帮助您构造适当的 ComboBoxModel
,代表您希望在每个按钮中关联的值。
现在,当 ActionListener
被触发时,您选择合适的模型并将其应用到 JComboBox
这最终对我有用
使用预先存在的数组并使用 actionListeners 将它们替换到组合框中的方法似乎不起作用,所以我从不同的角度来看它并使用 DefaultComboBoxModel 在组合框中添加和删除元素根据单击的单选按钮和 actionListeners 响应
这不是完整的代码,只是主要元素的可视化示例:
private DefaultComboBoxModel<String> model = new DefaultComboBoxModel<String>();
// Male/Female radio buttons
male = new JRadioButton("Male", true);
female = new JRadioButton("Female", false);
add(male);
add(female);
buttonGroup = new ButtonGroup();
buttonGroup.add(male);
buttonGroup.add(female);
// Title box MR/Mrs selection
radioListener radio = new radioListener();
male.addActionListener(radio);
female.addActionListener(radio);
// Used to set default combo box if there is no user selection
model.addElement("Mr");
model.addElement("Master");
JComboBox nameTitle = new JComboBox(model);
add(nameTitle);
public class radioListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
if(male.isSelected()){
model.removeAllElements();
model.addElement("Mr");
model.addElement("Master");
}
if(female.isSelected()){
model.removeAllElements();
model.addElement("Mrs");
model.addElement("Miss");
}
}
我如何使用 RadioButton select 组合框中显示的内容,即单击(按钮(男)或(女)) 并获得一个下拉组合框,显示 (combobox(Mr, master) 或 (Mrs,miss))
在过去的几个小时里,我一直在努力找出可行的方法。 我以为我需要的只是创建一个 actionListener 来根据单击的按钮为组合框设置不同的数组,但我似乎无处可去。
这是我目前所拥有的
`male = new JRadioButton("Male", true);
female = new JRadioButton("Female", false);
add(male);
add(female);
buttonGroup = new ButtonGroup();
buttonGroup.add(male);
buttonGroup.add(female);
radioListener radio = new radioListener();
male.addActionListener(radio);
female.addActionListener(radio);
JComboBox nameTitle = new JComboBox();
add(nameTitle);`
}
public class radioListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
if(male.isSelected()) nameTitle.setSelectedItem(maleTitles);
if(female.isSelected()) nameTitle.setSelectedItem(femaleTitles);
}
}
开始于
这将帮助您设置按钮、设置按钮组并编写 ActionListener
,当其中一个按钮被选中时将触发。
然后转到 How to Use Combo Boxes,这将帮助您构造适当的 ComboBoxModel
,代表您希望在每个按钮中关联的值。
现在,当 ActionListener
被触发时,您选择合适的模型并将其应用到 JComboBox
这最终对我有用
使用预先存在的数组并使用 actionListeners 将它们替换到组合框中的方法似乎不起作用,所以我从不同的角度来看它并使用 DefaultComboBoxModel 在组合框中添加和删除元素根据单击的单选按钮和 actionListeners 响应
这不是完整的代码,只是主要元素的可视化示例:
private DefaultComboBoxModel<String> model = new DefaultComboBoxModel<String>();
// Male/Female radio buttons
male = new JRadioButton("Male", true);
female = new JRadioButton("Female", false);
add(male);
add(female);
buttonGroup = new ButtonGroup();
buttonGroup.add(male);
buttonGroup.add(female);
// Title box MR/Mrs selection
radioListener radio = new radioListener();
male.addActionListener(radio);
female.addActionListener(radio);
// Used to set default combo box if there is no user selection
model.addElement("Mr");
model.addElement("Master");
JComboBox nameTitle = new JComboBox(model);
add(nameTitle);
public class radioListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
if(male.isSelected()){
model.removeAllElements();
model.addElement("Mr");
model.addElement("Master");
}
if(female.isSelected()){
model.removeAllElements();
model.addElement("Mrs");
model.addElement("Miss");
}
}