2016-05-23 13 views
1

У меня есть ArrayList объектов, которые я использовал для заполнения ComboBox (менеджеров), как показано ниже:Java ComboBoxes зависит от другого комбобоксе

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)); 
} 

Теперь я хочу, чтобы заполнить вторую ComboBox (подчиненных) на основе по значениям, выбранным в 1 ComboBox. В случае обработчика я пробовал следующее:

if (jComboBox1.getSelectedItem().equals("Insert Name here")) { 
    jComboBox2.addItem("it works!"); 
} 

И другие варианты, но я все еще рисую пробел.

Может кто-то прошу просветить меня.

ответ

0

Добавить код, соответствующий населению jComboBox2, в пункте прослушивания jComboBox1. Например,

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); 
Смежные вопросы