Ich habe ein kleines GUI mit einigen Eingabefeldern (JTextField) und einer JList in der Dateien angezeigt werden.
(Der Code ist ein wenig zu gross um den hier zu posten, aber vielleicht ist ja meine Beschreibung genügend um das Problem zu erkennen)
In den Feldern kann ich Filterkriterien eingeben und immer bei FocusLost wird der Inhalt der JList angepasst.
Die Auswahl eines Elementes aus der Liste werte ich mit einem ListSelectionListener (valueChanged) aus.
Wenn ich nun einen Listeneintrag anklicke kommt zuerst der ListSelectionListener und danach der FocusListener, weil als Folge des Mausklicks ja eines der Felder den Focus verloren hat. Das hat zur Folge, dass in der Liste kein Element mehr selektiert ist. Erst bei den weiteren Klicks in die Liste verhält sich alles wie gewünscht.
Wie kann ich das verhindern? Eine Statusvariable ist wohl eher suboptimal, weil ich damit die bieden Listenr verbinde, was ich lieber incht möchte.
Das im focusGained anstatt focusLost zu machen ist auch nicht einfach, weil ich im focusLost noch den Wertebereich überprüfe und Werte speichere.
Kann ich im FocusListener abfragen wo der Focus jetzt ist? Wie?
(Der Code ist ein wenig zu gross um den hier zu posten, aber vielleicht ist ja meine Beschreibung genügend um das Problem zu erkennen)
In den Feldern kann ich Filterkriterien eingeben und immer bei FocusLost wird der Inhalt der JList angepasst.
Die Auswahl eines Elementes aus der Liste werte ich mit einem ListSelectionListener (valueChanged) aus.
Wenn ich nun einen Listeneintrag anklicke kommt zuerst der ListSelectionListener und danach der FocusListener, weil als Folge des Mausklicks ja eines der Felder den Focus verloren hat. Das hat zur Folge, dass in der Liste kein Element mehr selektiert ist. Erst bei den weiteren Klicks in die Liste verhält sich alles wie gewünscht.
Wie kann ich das verhindern? Eine Statusvariable ist wohl eher suboptimal, weil ich damit die bieden Listenr verbinde, was ich lieber incht möchte.
Das im focusGained anstatt focusLost zu machen ist auch nicht einfach, weil ich im focusLost noch den Wertebereich überprüfe und Werte speichere.
Kann ich im FocusListener abfragen wo der Focus jetzt ist? Wie?