Frage

Ich habe eine Tabelle mit einem benutzerdefinierten Table (ausfahrenden DefaultCellEditor) mit einem JFormattedTextField als Editor-Komponente.

Jetzt habe ich Problem: Wenn ich eine separate Taste während der Bearbeitung drücken. Wenn die Taste gedrückt wird, bleibt der Editor „offen und aktiv“, während ich es Bearbeitung stoppen wollen würde, so dass die vorgenommenen Änderungen für die Operationen, die durch die Schaltfläche verursachten zur Verfügung stehen würden.

So, wie die Bearbeitung zu veranlassen, gestoppt werden, wenn ein deutlicher Taste gedrückt wird. Ich habe versucht, setFocusLostBehavior (JFormattedTextField.COMMIT) für die JFormattedTextField , aber es schien nicht, Wirkung zu haben.

Hope jemand hat einige gute Ideen =)

War es hilfreich?

Lösung

Sie können versuchen,

jtable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);

Andere Tipps

Danke asalamon74, die ganz gut funktioniert.

Es Debatte über das, was in der Sun Bug-Datenbank: Bug 4.724.980: JTable: In API zu steuern, was zu Änderungen passiert, wenn Tabelle den Fokus verliert. (auch andere Fehler Einträge gefunden). Die terminateEditOnFocusLost schaltet "Verpflichtungs-or-Cancel" Verhalten, das an den Java-Quellen in der Klasse JTable $ CellEditorRemover

zu sehen ist

Und ja, es ist etwas seltsam, dass es nicht an dem APIs dokumentiert etc ...

Wir hatten mehr Probleme auch mit diesen Dingen sehen, die Frage

scroll top