1

Java で Robot クラスを使用して、テキストを入力しようとしています。残念ながら、角括弧、この記号|、およびこの記号 ` のキー コードを見つけるのに問題があります。KeyEvent 定数でそれらを見つけることができません。入力しているテキストはキリル文字であり、これらの記号はアルファベットの文字を表すため、それらを使用したいと思います。前もって感謝します。

4

2 に答える 2

6

それはJavaDocにありますKeyEvent

KeyEvent.VK_OPEN_BRACKET

KeyEvent.VK_CLOSE_BRACKET

編集

KeyEventJavaDocから

この低レベル イベントは、キーが押された、離された、または入力されたときに、コンポーネント オブジェクト (テキスト フィールドなど) によって生成されます。

したがって、US 101 キー キーボードでは、修飾子はありますが、`~は同じキーコードを生成します。また、 (パイプ) キーストロークもトラップすることに注意してください。~SHIFTKeyEvent.VK_BACK_SLASH|

次のサンプルKeyAdapterをプロジェクトに追加して、実際の動作を確認してください。

new KeyAdapter()
{
    public void keyPressed(final KeyEvent e)
    {
        if (e.getKeyCode() == KeyEvent.VK_BACK_QUOTE)
        {
            e.toString();
        }
        if (e.getKeyCode() == KeyEvent.VK_BACK_SLASH)
        {
            e.toString();
        }
        if (e.getKeyCode() == KeyEvent.VK_OPEN_BRACKET)
        {
            e.toString();
        }
    }
}
于 2013-03-12T13:46:32.910 に答える
0

一般的な解決策は、 を呼び出すことKeyEvent.getExtendedKeyCodeForChar(int c)です。Unicode コードポイントに返さcれるVK_定数がある場合。それ以外の場合は、「一意の整数」が返されます。

'`' は KeyEvent.VK_BACK_QUOTE だと思います...

于 2013-03-12T13:52:22.160 に答える