0

私は2つのコンボボックスを持っています。最初の演算子にはいくつかの演算子 (+ 、 - 、* 、/) が含まれ、2 番目の演算子には 0 から 10 までの値が含まれます。ユーザーが最初のコンボ ボックスで (/) を選択すると、2 番目のコンボ ボックスに 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 の数字が表示されますが、別の演算子をクリックすると、0 から 10 ではなく 2 から 10 の数字が表示されることです。これを解決するにはどうすればよいですか?問題?!ありがとう

4

2 に答える 2

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

2番目のコンボの更新に関しては、新しいモデルを作成して呼び出しますsetModel(ComboBoxModel)

于 2012-05-06T19:15:31.813 に答える
2

別の. _ _ JComboBox_JComboBoxDefaultComboBoxModel

于 2012-05-06T20:32:39.940 に答える