Hallo!
Ich arbeite gerade daran einen JDialog mittels eines Tastendrucks auf ESC schließen zu können.
Ich hab mich auch schon so weit durch die Sun-API gewühlt, sodass ich nun folgendes Tue, um (unabhängig vom Fokus), den Dialog zum Schließen zu bewegen:
Das funktioniert in obiger Weise auch so, nur wenn ich statt "F2", "ESCAPE" einsetze, funktioniert gar nix mehr.
Um dem auf die Spur zu kommen, hab ich einen KeyListener bei einer beliebigen Komponente registriert und mir mit
den Tastentext ausgeben lassen. Nun habe ich von ESC bis F12 gedrückt und folgendes erhalten:
Hä? Die erste Zeile ist ESC, außerdem erkennt er nicht einmal F3, F11 und F12.
Also irgendwas hat's da.
Hab auch schon versucht von deutschem auf US-Tastaturlayout zu wechseln; ohne Erfolg.
Ist das ein Java-Bug, mach ich irgendeinen Fehler, oder hab ich schlechtes Karma?
Ach ja: Die Tastatur ist NICHT kaputt!
Ich arbeite gerade daran einen JDialog mittels eines Tastendrucks auf ESC schließen zu können.
Ich hab mich auch schon so weit durch die Sun-API gewühlt, sodass ich nun folgendes Tue, um (unabhängig vom Fokus), den Dialog zum Schließen zu bewegen:
Code:
JDialog dialog = new JDialog("Hello!",true);
...
InputMap im = dialog.getRootPane().getInputMap(JComponent.WHEN_FOCUS_IN_WINDOW);
ActionMap am = dialog.getRootPane().getActionMap();
im.put(KeyStroke.getKeyStroke("F2"), "dispose-on-escape");
am.put("dispose-on-escape", new DisposeDialogAction(dialog));
public class DisposeDialogAction extends AbstractAction {
private static final long serialVersionUID = 1L;
private JDialog owner;
public DisposeDialogAction(JDialog owner) {
this.owner = owner;
}
public void actionPerformed(ActionEvent e) {
owner.dispose();
}
}
Das funktioniert in obiger Weise auch so, nur wenn ich statt "F2", "ESCAPE" einsetze, funktioniert gar nix mehr.
Um dem auf die Spur zu kommen, hab ich einen KeyListener bei einer beliebigen Komponente registriert und mir mit
Code:
public void keyPressed(KeyEvent e) {
System.out.println(KeyEvent.getKeyText(e.getKeyCode()));
}
den Tastentext ausgeben lassen. Nun habe ich von ESC bis F12 gedrückt und folgendes erhalten:
Unknown keyCode: 0x0
F1
F2
F5
F6
F7
F8
F9
F10
Hä? Die erste Zeile ist ESC, außerdem erkennt er nicht einmal F3, F11 und F12.
Also irgendwas hat's da.
Hab auch schon versucht von deutschem auf US-Tastaturlayout zu wechseln; ohne Erfolg.
Ist das ein Java-Bug, mach ich irgendeinen Fehler, oder hab ich schlechtes Karma?
Ach ja: Die Tastatur ist NICHT kaputt!