Hallo,
ich habe hier eine editable ComboBox. An deren ComboBoxEditor (d.h. getEditor()) habe ich einen ActionListener gehängt damit ich es mitbekomme wenn der Nutzer z.B. Enter drückt.
In diesem Fall werden der Inhalt des ComboBox-Editfelds sowie zwei weitere ausgewertet und dann u.U. zu einem String kombiniert zum ComboBox-Modell hinzugefügt. Beim Hinzufügen wird dieser Eintrag dann auch gleich selektiert (addElement() des Models ruft setSelectedItem() auf).
Soweit funktioniert es wie es soll. Nun ist mein ActionListener jedoch nicht der einzige und der erste in der Liste (nach meinem aufgerufen da die Listener-Liste ja rückwärts abgearbeitet wird), weiß nichts davon, dass die ComboBox-Elemente nicht nur aus dem Inhalt des eigenen Editfelds bestehen.
Dieser andere Listener (BasicComboBoxUI) ruft JComboBox.setSelectedItem(JComboBox.getEditor().getItem()) auf was keinen passenden Eintrag findet und deselektiert somit alles.
Meine Frage ist nun, wie verhindere ich das? Wie kann ich es also erreichen, dass ich volle Kontrolle über das habe, was bei der Action passiert?
Ciao
ich habe hier eine editable ComboBox. An deren ComboBoxEditor (d.h. getEditor()) habe ich einen ActionListener gehängt damit ich es mitbekomme wenn der Nutzer z.B. Enter drückt.
In diesem Fall werden der Inhalt des ComboBox-Editfelds sowie zwei weitere ausgewertet und dann u.U. zu einem String kombiniert zum ComboBox-Modell hinzugefügt. Beim Hinzufügen wird dieser Eintrag dann auch gleich selektiert (addElement() des Models ruft setSelectedItem() auf).
Soweit funktioniert es wie es soll. Nun ist mein ActionListener jedoch nicht der einzige und der erste in der Liste (nach meinem aufgerufen da die Listener-Liste ja rückwärts abgearbeitet wird), weiß nichts davon, dass die ComboBox-Elemente nicht nur aus dem Inhalt des eigenen Editfelds bestehen.
Dieser andere Listener (BasicComboBoxUI) ruft JComboBox.setSelectedItem(JComboBox.getEditor().getItem()) auf was keinen passenden Eintrag findet und deselektiert somit alles.
Meine Frage ist nun, wie verhindere ich das? Wie kann ich es also erreichen, dass ich volle Kontrolle über das habe, was bei der Action passiert?
Ciao