Tastaturabfrage auf '@' klappt nicht :-(

vfl_freak

Premium-User
Moin,

irgendwie stehe ich gerade auf dem Schlauch ....

Ich versuche in einen Textfeld mittels "keyPressed" die Eingabe des Zeichens '@' abzufangen.
Leider schlagen sämtliche Versuche fehl :(
Hier mal ein Teil meiner Versuche, die ich nach längerer Webrecherche ausprobiert habe:
Java:
    void tfManuelleEingabe_keyPressed( KeyEvent e )
    {
        if( e.isAltGraphDown() )  // ist seltsamer FALSE, wenn ich die ALT GR-Taste gedrückt halte
        {
            if( e.getKeyCode() == KeyEvent.VK_Q )
            {
                e.consume();
            }
        }
// ------------------------------------------------------------------------------     
        int onmask = InputEvent.ALT_GRAPH_DOWN_MASK;  // hat den Wert 0x2000
        if( (e.getModifiersEx() & onmask) == onmask) // das getModifiers liefert nur 0x80 ....
        {
            e.consume();
        }
    }
Auch die Prüfung auf das KeyEvent VK_AT klappt nicht ...

EDIT:

Ich habe gerade im Debugger gesehen, dass beim Drücken von ALT-GR nacheinander die KeyEvents VK_CONTROL (0x17) und VK_ALT (0x18) kommen ......

Hier die Lösung
:)
das Ganze die "keyTyped"-Methode (!!) verlegen, von der kommt bei der ganzen Sache nur ein Event
dann das '@'' mit getKeyChar() auslesen/auswerten
dort gibt dann isAltGraphDown() auch TRUE

Java:
  /**
     * @brief Die Eingabe der Taste '@' im Textfeld "Manuelle Eingabe" unterdrücken
     * @param e = KeyEvent
     */
    void tfManuelleEingabe_keyTyped( KeyEvent e )
    {
        if( e.isAltGraphDown() )
        {
            if( e.getKeyChar() == '@' )
            {
                e.consume();
            }
        }
    } // tfManuelleEingabe_keyTyped

Gruß
Klaus
 
Zuletzt bearbeitet:
Zurück