자바 GUI 폼에서 두 번째 드롭 다운 메뉴를 만들 때 첫 번째 메뉴를 선택하면 두 번째 메뉴의 선택 항목이 결정됩니다. enter image description here2D JComboBox 중 ActionListener를 사용하여 다른 항목을 제어하는 것
내가 콤보 상자에서 내 선택을 전환 한 후, 그것은 다음과 같습니다 :
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
가 여기 내 테스터 코드의이 같은 모습을 달성하기 위해 희망 무엇
하지만 comboBox1에서 내 선택 항목을 전환하려고 할 때마다 항상 removeAllItems() 및 comboBox2.getSelectedItems()에서 NullPointerException이 발생합니다.
디버그하려고했지만 프로그램이 removeAllItems() 및 comboBox2.addItem()을 수행 할 때마다 comboBox2의 actionListener가 호출 되었기 때문입니다. 그리고 이걸 어떻게 처리 해야할지 모르겠다
약간의 도움이 필요하십니까?