2016-05-23 18 views
1

Ich habe ein ArrayList von Objekten, die ich verwendet habe, ein ComboBox (Manager) zu füllen, wie unten dargestellt:Java Comboboxen abhängig von einem anderen Combobox

testingPeople people = new testingPeople(); 
people.loadPeople(); 
ArrayList<Person> testing = new ArrayList<Person>(); 
testing = people.getManagerList(); 
for (int i=0; i < testing.size(); i++) { 
    jComboBox1.addItem(testing.get(i)); 
} 

Jetzt möchte ich die zweite ComboBox (Untergebene) aufzufüllen basierend auf den in der 1. ComboBox ausgewählten Werten. Im Event-Handler habe ich Folgendes versucht:

Und andere Variationen, aber ich zeichne immer noch eine leere.

Kann mir bitte jemand aufklären.

Antwort

0

Fügen Sie den Code für das Auffüllen jComboBox2 in den Objektlistener jComboBox1 hinzu. Zum Beispiel

ItemListener itemListener = new ItemListener() { 
    @Override 
    public void itemStateChanged(ItemEvent evt) { 
     String item = (String) evt.getItem(); 
     switch (item) { 
      case "Item 1": 
       jComboBox2.removeAllItems(); 
       jComboBox2.addItem("A"); 
       jComboBox2.addItem("B"); 
       jComboBox2.addItem("C"); 
       break; 
      case "Item 2": 
       jComboBox2.removeAllItems(); 
       jComboBox2.addItem("E"); 
       jComboBox2.addItem("F"); 
       jComboBox2.addItem("G"); 
       break; 
     } 
    } 
}; 
jComboBox1.addItemListener(itemListener); 
Verwandte Themen