Java GUIフォームで2つのドロップダウンメニューを作成することになりました。最初のものを選択すると2番目のメニューの選択肢が決まります。 enter image description here2DのJComboBoxで、ActionListenerで他の項目をコントロールするもの
そして、私はComboBox1の中で私の選択を切り替えた後、それは次のようになります:
public static void main(String[] args) {
Tester tester = new Tester();
String[] flower = {"Rose", "Tulip"};
String[] color1 = {"Yellow", "Blue", "Red"};
String[] color2 = {"Purple", "White", "Green"};
for (String flowerPicked : flower) {
tester.comboBox1.addItem(flowerPicked);
}
tester.comboBox1.addActionListener(e -> {
// remove previous items in comboBox2 everytime a new item in box1 is selcted
tester.comboBox2.removeAllItems();
String flowerChoice = tester.comboBox1.getSelectedItem().toString();
if (flowerChoice.equalsIgnoreCase("Rose"))
for (String colorPicked : color1) {
tester.comboBox2.addItem(colorPicked);
}
else
for (String type : color2) {
tester.comboBox2.addItem(type);
}
});
tester.comboBox2.addActionListener(e -> {
String colorChoice = tester.comboBox2.getSelectedItem().toString();
String flowerChoice = tester.comboBox1.getSelectedItem().toString();
system.out.println(colorChoice + " " + flowerChoice);
});
}
:
enter image description here
はここに私のテスターのコードだ私はこのようなルックスを実現したいと考えて何
しかし、私はいつもremoveAllItems()とcomboBox2.getSelectedItems()でNullPointerExceptionを実行し、comboBox1で自分の選択を切り替えようとします。
デバッグしようとしましたが、プログラムがremoveAllItems()とcomboBox2.addItem()を実行したときに、comboBox2のactionListenerが呼び出されたようです。そして、私はこれをどう対処するのか分かりません
少し助けてください?