Ich versuche, eine Spalte zu einem JTable
mit folgendem Verhalten (ähnlich dem Windows Explorer und ähnlicher Shells) hinzuzufügen:Erstellen eine JTable Zelle bearbeitet werden - aber * nicht durch einen Doppelklick * Klick
- Die Zelle kann sein Einmal geklickt, um es wie gewohnt auszuwählen.
- Die Zelle kann doppelt angeklickt werden, um eine separate Aktion auszuführen (Starten eines externen Programms).
- Der Zellenwert (eine Zeichenfolge) kann noch bearbeitet werden, durch einmaliges Klicken (nach einer Pause) oder durch Drücken von F2 wenn die Zelle markiert ist.
Doppelklick muss nicht Trigger Bearbeitung der Zelle, aber ich möchte andere Standard-Bearbeitung in Betrieb verlassen auslöst, wenn möglich.
Ich habe das Hinzufügen versucht, eine MouseListener
an den Tisch, und konsumieren alle MouseEvent
s, aber das funktioniert nicht - wenn ich true
von isCellEditable()
kehrt dann nie meine Zuhörer empfängt alle Ereignisse klicken, aber wenn ich wieder false
dann F2 nein länger funktioniert.
Kann dies nur mit Event-Listenern erreicht werden? Ich würde es vorziehen, mich nicht mit den PLAF-Funktionen zu beschäftigen, wenn ich es vermeiden kann.
[Hier] (http://Stackoverflow.com/a/25919008/738017) gibt es eine neuere Antwort von [camickr] (http://stackoverflow.com/users/131872/camickr), die das Problem in 4 Zeilen Code lösen. –