我有两个组合框。第一个包含一些运算符(+, - ,*,/),第二个包含0到10之间的某个值。当用户在第一个组合框中选择(/)时,我希望第二个显示2到10之间的值0到10。
我试过这个:
String[] operators = {"+","-" ,"*", "/"};
String[] number = {"0","1","3"....."10"};
divisionModel= new DefaultComboBoxModel(new String[]{"2","3","4","5".."10"});
operatorCombo = new JComboBox(operators);
numberCombo = new JComboBox(number);
operatorCombo.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if (operatorCombo .getSelectedItem().equals("/")){
numberCombo .setModel(divisionModel);
}
我的问题是,当我选择(“/”)numberCombo工作正常并显示2到10的数字但是当我点击另一个操作符时它仍然显示数字从2到10而不是0到10.如何我解决了这个问题?! 感谢
答案 0 :(得分:2)
// always compare objects using equals()
if (operatorCombo.getSelectedItem().equals("/")) {..
关于更新第二个组合,为其创建一个新模型并调用setModel(ComboBoxModel)
。
答案 1 :(得分:2)
您可以查看此example,其中显示了在一个JComboBox
中进行的选择如何通过使用其他JComboBox
来更改相关DefaultComboBoxModel
的外观。