Je suis bloqué sur la création de deux menus déroulants en Java GUI Form que la sélection du premier déterminera les choix dans le second menu.2D JComboBox que l'on contrôle les éléments de l'autre avec ActionListener
Ce que je souhaite réaliser ressemble à ceci: enter image description here
Et après avoir changé mon choix comboBox1, il ressemble à ceci: enter image description here
Voici mon code testeur:
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);
});
}
Mais je cours toujours dans NullPointerException à removeAllItems() et comboBox2.getSelectedItems() chaque fois que j'essaie de changer mon choix dans comboBox1.
J'ai essayé de le déboguer, mais il semble que c'est parce que actionListener de comboBox2 a été appelé chaque fois que le programme a fait removeAllItems() et comboBox2.addItem(). Et je ne sais pas comment gérer cela
Un petit coup de pouce?