2013-03-05 3 views
0

Я пытаюсь загрузить 2 комбинированных ящика; после смены первого комбо необходимо загрузить пакет secoond combo. Я использую netbeans, и я пробовал несколько раз, но он не работает ... Элементы для загрузки должны быть одинаковыми с исключением из элемента, выбранного в первом комбо.JAVA netbeans проблемы с comboBox

private void firstTeamComboBoxItemStateChanged(java.awt.event.ItemEvent evt) 
{             
     loadSecondTeamComboBox(); 
    }             

    private void loadSecondTeamComboBox() 
    { 
     String[] theTeamsInTheLeague2 = league.loadTeamsInLeague(secondTeam.getLeague()); 
     secondTeamComboBox.addItem("Select a Team"); 
     for(int i = 0; i < theTeamsInTheLeague2.length; i++) 
      if (!(theTeamsInLeague2[i].equals(firstTeam.getLeague())) 
       secondTeamComboBox.addItem(theTeamsInTheLeague2[i]); 
    } 


    private void loadFirstTeamComboBox() 
    { 
     String[] theTeamsInTheLeague1 = league.loadTeamsInLeague(firstTeam.getLeague()); 
     firstTeamComboBox.addItem("Select a Team"); 
     for(int i = 0; i < theTeamsInTheLeague1.length; i++) 
      firstTeamComboBox.addItem(theTeamsInTheLeague1[i]); 
    } 
+0

Ну если честно я do't undestand хорошо, что происходит в этом соответствующий ответ – Alpan67

+0

Что именно не работает? Каковы результаты вашего кода? – Guido

+0

Проблема в том, что и firstTeamCombo, и secondTeamCombo загружают одни и те же элементы и в один и тот же момент ... Я хотел бы, чтобы secondteamCombo загружался после выбора элемента firstTeamCOmbo ... – Alpan67

ответ

1

Один подход был бы переопределить setSelectedItem() в DefaultComboBoxModel и сохранить ссылку на otherTeamModel, обновляя ее по мере необходимости из allTeamsInTheLeague.

class MyComboBoxModel extends DefaultComboBoxModel { 
    private DefaultComboBoxModel otherTeamModel; 

    public MyComboBoxModel(DefaultComboBoxModel otherTeamModel) { 
     this.otherTeamModel = otherTeamModel; 
    } 
    @Override 
    public void setSelectedItem(Object item) { 
     super.setSelectedItem(item); 
     otherTeamModel.removeAllElements(); 
     // add all allTeamsInTheLeague except item 
    } 
} 
Смежные вопросы