AWT Hotkey ohne Fokus

Status
Nicht offen für weitere Antworten.

multiholle

Aktives Mitglied
Wie kann ich einen Hotkey definieren, der auch ohne Fokus auf eine bestimmte Komponente funktioniert? Folgender Quelltext funktioniert nur, wenn die Komponente den Fokus hat.

[highlight="java"]
getInputMap().put(KeyStroke.getKeyStroke("SPACE"), "pauseUnpause");
getActionMap().put("pauseUnpause", new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("SPACE!");
}
});
[/highlight]
 
Java:
final InputMap im = getInputMap(WHEN_IN_FOCUSED_WINDOW);
im.put(KeyStroke.getKeyStroke("SPACE"), "pauseUnpause");
getActionMap().put("pauseUnpause", new AbstractAction() {
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("SPACE!");
    }
});
Ebenius
 
Funktioniert leider wenn ich den Fokus z. B. in einer JTable habe nicht mehr. Ich habe den "KeyListener" in das Hauptpanel eingefügt, das alle anderen Panels/Tabellen/... enthält. Außerdem habe ich das Problem das die Leertaste schon die Funktion hat Buttons zu betätigen, was sich manchmal überlagert.
 
Natürlich bleiben die "näheren" KeyBindings erhalten. Wäre ja auch furchtbar, wenn dem nicht so wäre. Was erwartest Du denn für ein Verhalten? Wie soll ich denn noch gescheit Text eintippen, wenn Du mir die SPC-Taste stiehlst? Erklär mal ein bisschen näher!

Ebenius
 
Das wäre echt furchtbar denk mal du schreibst text in ein Textfeld und mit der Backspace Taste würde der Hotkey von firefox anspringen und dir jedesmal eine Seite zurück springen :lol:
 
Ok dann werde ich lieber die Funktionstasten und Buchstaben in Verbindug mit STRG/ALT als Hotkey nutzen. Wenn ich jetzt aber F2 als Hotkey definiere funktioniert er trotzdem nicht, wenn ich eine Zeile in einer Tabelle selektiere. Da sollte er allerdings dann schon funktionieren.
 
F2 ist das normale KeyBinding einer Tabelle zum Aktivieren des Editors. Ist auch in anderen Komponenten so; zum Beispiel im Windows Explorer. Drück F2, dann kannst Du die selektierte Datei umbenennen.

Ebenius
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben