2012-05-06 74 views
0

我有两个组合框。第一个包含一些运算符(+, - ,*,/),第二个包含一些从0到10的值。当用户在第一个组合框中选择(/)时,我希望第二个显示2到10的值0〜10JComboBox项目监听器

我已经试过这样:

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

!)Swing中没有'ComboBox'。你的意思是'JComboBox'?如果是这样,请复制/粘贴名称。如果没有,请勿混用Swing和AWT组件。 2)[你有什么尝试?](http://www.whathaveyoutried.com/)我的意思是*除了*在互联网上向随机陌生人询问为你做。 –

+0

对不起,我的意思是JComboBox – lina

+0

divisionModel = new DefaultComboBoxModel(new String [] {“2”,“3”....}); (operatorCombo.getSelectedItem()==“/”)operatorCombo.setModel(divisionModel);如果(operatorCombo.getSelectedItem()==“/”){0}。 – lina

回答

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

至于更新的第二组合,为它创建一个新的模式,并呼吁setModel(ComboBoxModel)

+0

是的,我做到了这一点,罚款当我选择(/)但我的问题是当我选择另一个运算符,如+,secondCombo假设显示所有数字从0到10,但它只显示从2到10 – lina

+0

我想我需要在此之后,如果但我不知道我应该写些什么... – lina

+1

为了更好地提供帮助,请发布[SSCCE](http://sscce.org/)。 –

2

你可以看看这个example展示了如何在一个JComboBox做出的选择可以通过使用不同的DefaultComboBoxModel改变相关JComboBox外观。