Allgemeine Frage zu ItemListener removal

Shizzl_chrizzl

Erfahrenes Mitglied
Hi,

ich hab mal ne Frage ich hab an einer Combobox einen ItemListener der wie folgt aussieht.

Code:
comboEqui.addItemListener( new ItemListener()  {
           public void itemStateChanged( ItemEvent e ) {
           if(e.getStateChange()==ItemEvent.SELECTED)      
             {  ...

Nun möchte ich den wieder entfernen nur normalerweise macht man das ja über
comboEqui.removeItemListener(ItemListener blub) (oder so in der Art gg). Da ich nun den obigen ItemListener nicht definiert bzw. kein blub zugewiesen hab kann ich ihn auch nicht auf diese Weise entfernen. Kann ich den jetzt trotzdem durch nen einfachan befehl entfernen den ich nur nicht finde oder muss ich es umschreiben... :confused:
 
Hallo,

mit getItemListeners() kriegst Du ein Array mit allen ItemListener, die bie der ComboBox registriert sind. Dann kannst Du die ja nacheinander removen. Dein anonymer ItemListener ist mit sicherheit auch dabei. ;)
 
@Vincentius:

Das ist halt schlecht wenn man eine anonymen Itemlistener verwendet und gleichzeitig mehrere Itemlistener dranhängt ;)
aber so funktioniert das......
 
hi aber ich hab das etz so gemacht:

ItemListener[] ils = (ItemListener[])(comboEqui.getListeners(ItemListener.class));
so etz liefert er mir ja die listener im array.

und dann mach ich eben ils.remove(0)


dann sagt er aber das er den befehl nicht kennt, wie lösch ich nun den listener
 
Hallo,

so kompliziert muss es nicht sein. Wie ich oben bereits schrieb, gibt es in der Klasse JComboBox eine Methode namens getItemListeners(). Sie liefert Dir ein Array mit allen ItemListener, ohne dass Du einen Typecast machen musst. ;)
Code:
ItemListener[] listeners = myComboBox.getItemListeners();
for (int i = 0; i < listeners.length; i++) {
    myComboBox.removeItemListener(listeners[i]);
}
Gruß
Vincent
 
hi , das hab ich ja auch ursprünglich gemacht aber dann schmeisst er mir hier

Code:
ItemListener[] listeners = comboEqui.getItemListeners();

immer den Fehler:

"method getItemListeners not found in class javax.swing.JComboBox"

:confused:
 
kann ich das irgendwo nachschaun weis es nämlich nicht genau is der rechner auf der arbeit.... ich vermute aber mal schwer 1.3 nachdem er den befehl nicht kennt ...
 
also hab grad mal im browser nachgeschaut gg, das müsste ja auch stimmen und da steht "Verwenden sie Java 2 1.4.0 für applet" deshalb denk ich mal das die version aktuell ist oder Oder ihr sagt mir am besten ob man auch so im System nachschauen kann :-).

hab jetzt auch mal in der Systemsteuerung nachgeschaut da wird ja n java icon und da hab ich zwar n paar alte plug ins wo 1.3.0 usw. steht aber auch eines mit 1.4.0 und wenn ich da auf infos geh gibt er bei runtime environment, standard edition 1.4.0 an
 
Zuletzt bearbeitet:
Es geht nicht um die Version des JRE, sondern um die Version des JDK. Das Verzeichnis, in dem dein JDK installiert ist, enthält normalerweise die Versionsnummer. Wenn nicht, stehts in der README.html oder README.txt im Hauptverzeichnis des JDKs.
 
Zurück