2016-04-08 3 views
0

Wenn ich klicken wählen Sie eine Zeile in einem jtable das ListSelectionListener Feuer zweimal eine für die Auswahl und eine andere für die Zeile Abwählen so dass der Benutzer den Eindruck, dass die Zeile nicht wurde ausgewählt, da es sehr schnell erfolgt.Wie verhindere ich, dass der ListSelectionListener von JTable die Auswahl einer Zeile selbst aufheben kann?

Wie kann ich die Abwahl der Zeile verhindern?

PS: Das Standardverhalten ohne Implementierung von ListSelectionListener funktioniert wie erwartet, wenn der Benutzer auf die ausgewählte Zeile klickt.

+0

Bitte zeigen Sie uns, was Sie versucht haben. Stellen Sie uns ein minimales, vollständiges und überprüfbares Beispiel zur Verfügung [MVCE] (http://stackoverflow.com/help/mcve) – wiredniko

+0

Ihr Listener erhält einen Treffer für die abgewählte Zeile und einen weiteren für die ausgewählte Zeile. – jr593

+0

Zuerst danke für Ihre schnellen Antworten. Ich habe den Code nicht hinzugefügt, weil ich das JTable-Steuerelement vom Formular der Benutzeroberfläche abrufe und einfach den ListSelectionListener dazu hinzufüge und ihn mit Daten bevölkere, die ein neues AbstractTableModel festlegen. Ich habe gerade versucht, ein kleineres Beispiel zu replizieren, das das JTable programmatisch erzeugt, und dieses Problem tritt nicht auf, also muss es etwas sein, das auf UI konfiguriert wird, aber ich spezifizierte keine Konfiguration zum JTable. –

Antwort

1

Sie können mit e.getValueIsAdjusting überprüfen, ob es das erste Ereignis oder die Sekunde ist.

Von javadoc:

Returns, ob diese eine in einer Reihe von mehreren Ereignissen ist, wo Änderungen noch gemacht werden.

+0

Danke. Einen schönen Tag noch. –