# KeyEvent und Fragezeichen



## madboy (18. Mai 2006)

Hallo,

Mein Problem ist folgendes:

Ich habe einen kleinen "Robot" geschrieben, der Tastendrücke und Mausklicks nach Eingabe wieder abspielen soll. Allerdings habe ich jetzt das Problem, wie ich ihm beibringe, ein Fragezeichen zu drücken.

Aus java.awt.event.KeyEvent: 





> there is no keycode for the question mark because there is no keyboard  for which it appears on the primary layer.



Also dachte ich, lass den Robot doch Shift+'ß' drücken. Das hat allerdings auch nicht geklappt.

Habe mit einem KeyListener auf ein JTextField mal versucht, den KeyCode herauszufinden:

```
public static void main(String[] args) {

        JTextField field = new JTextField();
        field.addKeyListener(new KeyListener() {
            public void keyTyped(KeyEvent e) {}
            public void keyPressed(KeyEvent e) {
                System.out.println("keyCode: " + e.getKeyCode());
            }
            public void keyReleased(KeyEvent e) {}
        });
        JFrame frame = new JFrame();
        frame.getContentPane().add(field);
        frame.pack();
        frame.setVisible(true);
    }
}
```

es wird bei allen Tasten was ausgegeben, aber ausgerechnet bei 'ß' nichts (bei Shift+'ß' bekomme ich 0). 

Hab ich was übersehen, oder gibt es keine Möglichkeit, ein Fragezeichen durch den KeyCode darzustellen?

Danke und Gruß,
madboy


----------



## motschow (18. Mai 2006)

Hast dus schonmal mit getKeyChar() probiert?


----------



## madboy (18. Mai 2006)

Hab ich. getKeyChar() liefert auch was Korrektes. Ich brauche aber den KeyCode, um später mit dem java.awt.Robot Tasten drücken zu können.


----------



## thE_29 (19. Mai 2006)

In der Klasse KeyEvent steht das da:

 * [*]Not all characters have a keycode associated with them.  For example, 
 * there is no keycode for the question mark because there is no keyboard 
 * for which it appears on the primary layer.


----------



## byte (19. Mai 2006)

Guck Dir mal KeyStrokes an. Damit kannste sowas wie SHIFT+? als KeyAction definieren. Ich kenne mich aber nich mit Robot aus, also keine Ahnung, ob Dir das da weiterhilft.


----------



## madboy (19. Mai 2006)

@ thE_29: Ja, leider. Aber mit Shift + 'ß' (Deutsches Tastaturlayout) geht auch nix.

@byto: Danke, werd ich mir mal anschauen.


----------



## madboy (22. Mai 2006)

KeyStrokes helfen leider auch nicht  :cry: Robot erwartet eine KeyCode und die 'ß' bzw. '?' - Taste besitzt wohl keinen KeyCode, nur einen KeyChar (was mir allerdings nicht hilft)

Hätte ich villeicht vorher schon schreiben sollen, fällt mir aber erst jetzt ein:
Betriebssystem: Linux (SuSE 10.0)
Tastaturlayout: Deutsch
Java 1.5.0_03

Falls noch jemand eine Idee hat, immer her damit  :wink: 

Ansonsten muss ich wohl den Support von SUN bemühen...

Gruß,
madboy


----------

