2012-05-06 5 views
0

2つのコンボボックスがあります。 (+、 - 、*、/)があり、最初のコンボボックスでユーザーが(/)を選択すると、2番目のコンボボックスに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までの数字を示したが、私は上のクリックしたときもう1つの演算子はまだ0から10ではなく、2から10までの数字を表示します。この問題はどのように解決できますか? おかげ

+2

!)Swingには「ComboBox」はありません。あなたは 'JComboBox'を意味しましたか?その場合は、名前をコピー/貼り付けます。そうでない場合は、SwingコンポーネントとAWTコンポーネントを混在させないでください。 2)[あなたは何を試しましたか?](http://www.whathaveyoutried.com/)インターネット上のランダムな見知らぬ人にあなたのためにそれを依頼することを意味します。 –

+0

申し訳ありません。JComboBox – lina

+0

divisionModel = new DefaultComboBoxModel(new String [] 2、 "3" ....}); if(operatorCombo.getSelectedItem()== "/"){ operatorCombo.setModel(divisionModel); – 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

あなたは1 JComboBoxで行われた選択は異なるDefaultComboBoxModelを使用することにより、関連JComboBoxの外観を変更する方法を示している。このexampleに見えるかもしれません。