JScrollPane Focus-Problem

zeiflex

Grünschnabel
Hallo,
ich arbeite gerade ein einem Projekt bei dem es um ein 3D-Hauseditor geht. Soweit ist er auch schon zu gebrauchen um Wände mit Türen und Fesnter zu versehen und diese dann anzuzeigen. Nun zum Problem. Es werden alle Wände in einem JScrollPane angezeigt. Wenn man jetzt eine Wand aus der Liste anklickt, soll sie rot werden, dass man sieht, welche man gerade bearbeitet. Wenn man das erste Mal in die Liste rein klickt, wird die Wand auch rot, doch wenn man jetzt eine andere Wand anklickt, passiert nichts mehr. Man müsste erst immer in ein anderes Feld klicken, dass das FocusLost-Event greift, und dann nochmal neu in die Liste klicken. Wie ist es möglich, dass das FocusLost-Event ausgelöst wird, wenn man ein anderes Element in der Liste anklickt und dann gleichzeitig auch das FocusGained-Event wieder durchläuft? Hoffe Ihr versteht was ich meine.

Edit:
Ich hatte überlegt, dass man vllt den FocusListener auf die einzelnen Elemente in der List anwändet, anstatt auf die Liste selber, nur ich weiß nciht wie das funktioniert.

MfG
Andre
 
Zuletzt bearbeitet:
Howdie.

Sowas würde ich nicht über einen FocusListener regeln. Die gleiche Problematik hatte ich auch schon öfter. Hab auch manuell Focus-Events abgeschossen, Property-Listener implementiert usw.
Es ist aber denkbar einfach:
Da du Listen (darunter fallen z.B. auch JTables) verwendest, kannst du einen ListSelectionListener implementieren. Dieser hat eine Methode public void valueChanged(ListSelectionEvent e) über den du jede Änderung innerhalb der Liste mitbekommst.

Gruß
miffi
 
Zurück