JComboBox项侦听器

时间:2012-05-06 18:27:59

标签: java swing jcombobox itemlistener comboboxmodel

我有两个组合框。第一个包含一些运算符(+, - ,*,/),第二个包含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.如何我解决了这个问题?! 感谢

2 个答案:

答案 0 :(得分:2)

// always compare objects using equals()
if (operatorCombo.getSelectedItem().equals("/")) {..

关于更新第二个组合,为其创建一个新模型并调用setModel(ComboBoxModel)

答案 1 :(得分:2)

您可以查看此example,其中显示了在一个JComboBox中进行的选择如何通过使用其他JComboBox来更改相关DefaultComboBoxModel的外观。