Programmweite Shortcuts, Tastatureingaben

Status
Nicht offen für weitere Antworten.

Robinson

Mitglied
Hi,

ich möchte in meinem Programm realisieren das auf bestimmte Tastatureingaben immer gleich reagiert wird.

z.B. Popup öffnen,...

hierzu würde ich gerne in meinem Frame eine Eingabe erkennen (z.B. F5) und dann eine entsprechende Funktion aufrufen.

Befindet sich der Cursor aber in einer untergeordneten Komponente (z.B. einem TexField innerhalb eines Panels auf meinem Frame) so scheint die Tastatureingabe nicht an diesen weitergereicht zu werden.

Wie erreiche ich dass alle Tastaturevents von meinem Frame registriert werden?
 

Robinson

Mitglied
Hi,

habe leider erst jetzt gesehen dass ich eine Antwort habe.
War sehr beschäftigt mit Klausuren.

Habe Dein Beispiel gerade getestet.
Es funktioniert auch super wenn ich mehrere Geschachtelte Jcomponent Klassen habe auf denen TextFields plaziert sind.

Ich habe auch JTable Komponenten in meiner Maske innerhalb dieser funktioniert es leider nicht.
 

André Uhres

Top Contributor
Robinson hat gesagt.:
...Habe Dein Beispiel gerade getestet...Ich habe auch JTable Komponenten in meiner Maske innerhalb dieser funktioniert es leider nicht.
Unglücklicherweise wird im Beispiel die F2-Taste benutzt, die in JTable schon eine eingebaute Funktion hat:
sie bringt die fokusierte Zelle in den "edit mode".
Du kannst entweder eine andere Taste nehmen, oder die F2-Taste für JTable desaktivieren, dann geht's auch mit F2:
Code:
       //  JTable: disable the F2 key
        InputMap im = mytable.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
        im.put(KeyStroke.getKeyStroke("F2"), "none");
 

Robinson

Mitglied
Ok, super klasse.

Dann nehme ich die F5, die wollte ich eh.
Darafu bin ich nicht gekommen.

Ich habe in den letzten Tagen verscheidene Artikel von DIr zu ähnlichen Themen gelesen.
Wo finde ich einen guten Einstieg zu dem ganzen Thema Actions, KeyStrokes,... ?

Das sollte man doch auch nachlesen können welche Keys wo bereits definiert sind.

Auf jeden Fall schon mal


VIELEN DANK


Deine Beiträge haben mir diese Woche schon sehr viel Ärger genommen.
 

SamHotte

Top Contributor
in java.awt.KeyEvent findest du diverse Konstanten für sog. "virtuelle Tastencodes", die alle mit "VK_" anfangen - damit lässt sich das meiste erledigen. In der API ist auch 'n Link auf ein Tutorial drin.
 

Robinson

Mitglied
Vielen Dank.

Wenn man einen Ansatz hat nach dem man sucht wirds viel einfacher.

Werde mich damit mehr beschäftigen müssen.
 

thE_29

Top Contributor
Problem ist das man auf STRG + nicht abfragen kann!!!


Zumindest nicht auf beide gleichzeitig ^^


Da einmal VK_ADD und einmal VK_PLUS ist!

Es gibt zwar getKeyStroke(char, modifiere)

diese funktioniert aber nur wenn man nur einen Buchstaben mitübergibt und als modifier nix!

Wenn ich auch nur ein Shirt, oder Alt, etc als Modifier eingib, geht nix!!

Toller Schmafuu :)
 

thE_29

Top Contributor
Mh, und das geht dann mit STRG + +??

Weil bei mir geht das nicht!

Probier mal ob es auch mit dem Plus geht!


Ohne modifier, bzw mit Shift modifiere geht meins auch, aber nicht mit ALT oder STRG!!
 

André Uhres

Top Contributor
thE_29 hat gesagt.:
..Probier mal ob es auch mit dem Plus geht!..
Es scheint nur zu funktionieren mit einem Zeichen das keine Tastenkombination erfordert,
sondern mit nur einer einzigen Taste erzeugt werden kann.
Die Kombinationstasten wie ALT und SHIFT werden dabei als modifier interpretiert
und nicht als Teil der Tastenkombination für das Zeichen.
Mit VK_ADD und dem + Zeichen vom NUMPAD geht es bei mir,
auch in Verbindung mit modifier SHIFT.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben