如何使用RadioButton选择单击后显示的组合框中显示的内容(按钮(男性)或(女性)) 并获得一个组合框下拉显示(组合框(先生,大师)或(太太,小姐))
我花了几个小时试图弄清楚会有什么用。 我认为我需要的只是创建一个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);
}
}
答案 0 :(得分:2)
从
开始这将帮助您设置按钮,设置按钮组并写入ActionListener
,当选择其中一个按钮时,将会触发该按钮。
然后转到How to Use Combo Boxes,这将帮助您构建适当的ComboBoxModel
,表示您希望在每个按钮中关联的值。
现在,当ActionListener
被触发时,您选择适当的模型并将其应用于JComboBox
答案 1 :(得分:0)
这最终对我有用
使用预先存在的数组并使用actionListeners将它们替换为comboBox的方法似乎不起作用所以我从不同的角度来看它并使用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");
}
}