Moin!
Ich habe ein JFrame mit einigen JComboBoxen drauf, die alle von ItemEventListenern überwacht werden. Ich habe nun allerdings ein Problem, wenn ich auf Veränderungen reagieren möchte.
Wenn der User einen Wert in einer JComboBox auswählt, sollen sich die Inhalte der anderen Boxen ändern. Der Listener sieht so aus:
Dies führt aber dazu, dass bei den anderen Boxen ItemEvents ausgelöst werden und die entsprechenden Methode ausgeführt werden. Dann kommt es auch mal zu Kettenreaktionen, sodass eine Methode zehn Mal ausgeführt wird, obwohl sie nur einmal ausgeführt werden soll. Das möchte ich jedoch verhindern und ich finde keine Möglichkeit.
Kann man also irgendwie herausfinden, ob der User das ItemEvent durch einen Klick ausgelöst hat, oder ob es eine andere Komponente war?
Gruß
Leif
Ich habe ein JFrame mit einigen JComboBoxen drauf, die alle von ItemEventListenern überwacht werden. Ich habe nun allerdings ein Problem, wenn ich auf Veränderungen reagieren möchte.
Wenn der User einen Wert in einer JComboBox auswählt, sollen sich die Inhalte der anderen Boxen ändern. Der Listener sieht so aus:
Java:
class AlgoIListener implements ItemListener {
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
// Hier werden andere JComboBoxen verändert
}
}
}
Dies führt aber dazu, dass bei den anderen Boxen ItemEvents ausgelöst werden und die entsprechenden Methode ausgeführt werden. Dann kommt es auch mal zu Kettenreaktionen, sodass eine Methode zehn Mal ausgeführt wird, obwohl sie nur einmal ausgeführt werden soll. Das möchte ich jedoch verhindern und ich finde keine Möglichkeit.
Kann man also irgendwie herausfinden, ob der User das ItemEvent durch einen Klick ausgelöst hat, oder ob es eine andere Komponente war?
Gruß
Leif