Wie kann man feststellen, ob ein Textfeld gerade im EditModus ist?

sagi7

Mitglied
Hallo,

ich benutze javax.swing.Action's und habe einer Action die Entf Taste als ACCELERATOR_KEY zugewiesen.
Das funktioniert soweit ganz gut, außer der User befindet sich gerade in einem Textfeld und möchte mit Entf ein Zeichen löschen. Dann wird die Action gefeuert.
Gibt es eine Möglichkeit, bei JTextComponent festzustellen, ob sie sich gerade im "Eingabemodus" befindet?
Ich habe einen FocusListener registriert - müsste also nur noch die Komponente abfragen.
 
Hi,
du kannst - wie du schon festgestellt hast - einen FocusListener registrieren, um darüber herauszufinden, ob das Textfeld angewählt ist. Das Textfeld befindet sich normalerweiße sobald es angewählt wurde im "Eingabemodus", bis der User wo anders hinklickt. Demzufolge wirst du das so wahrscheinlich nicht lösen können.
Bei diesen Accelerator-Keys ist es bei den meisten Programmen so gelöst, dass zu einer Taste (z.B. "P", "X", etc.) eine zusätzliche Taste gedrückt werden muss, wie z.B. STRG oder ALT. Dasselbe würde ich dir auch empfehlen zu tun. ;)

Gruß

Fabio
 
Nun ja - ich kann ja feststellen, ob der FocusOwner eine Instanz von JTextComponent ist.
Das Problem ist nur bei Tabellen oder Trees, die erst auf Doppelklick eingabebereit werden.
 
Mhhh... versuch es mal mit dem ActionListener. Der müsste meines Erachtens reagieren, wenn die Komponente ausgewählt und in den "Bearbeitungsmodus" gewechselt hat.
 
Zurück