2012-05-06 104 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外觀。