Herstellung einer JTable Zelle editierbar - aber *nicht* durch einen Doppelklick

Ich versuche zum hinzufügen einer Spalte zu einer JTable mit dem folgenden Verhalten (ähnlich wie Windows-Explorer und ähnlichen Schalen):

  • Die Zelle kann angeklickt werden, um es auszuwählen, wie üblich.
  • Kann die Zelle doppelt geklickt haben, führen Sie eine separate Aktion (starten eines externen Programms.)
  • Der Wert der Zelle (string) können noch bearbeitet werden, durch einfaches klicken ein zweites mal (nach einer pause) oder durch drücken von F2, wenn die Zelle markiert ist.

Doppelklick muss nicht trigger Bearbeiten der Zelle, aber ich möchte lassen Sie alle anderen Standardeinstellungen Bearbeiten von Triggern operativen, wenn möglich.

Ich habe versucht, das hinzufügen einer MouseListener auf den Tisch, und verbrauchen alle MouseEvents, aber das funktioniert nicht - wenn ich zurück true aus isCellEditable() dann meine Zuhörer nie erhält, klicken Sie auf alle events, aber wenn ich zurück false dann F2 funktioniert nicht mehr.

Kann das erreicht werden, die nur mithilfe von Ereignis-Listenern? Ich würde es vorziehen, nicht zu verwirren mit dem PLAF-Funktionen, wenn ich es vermeiden kann.

Hier es gibt eine neuere Antwort von camickr, die das problem lösen in 4 Zeilen code.

InformationsquelleAutor finnw | 2009-08-12

Schreibe einen Kommentar