0

ある種のキーボード コントローラ クラスを作成しようとしましたが、Java ロボットはキーボード全体を制御できないようです。

私は試した

robot.keyPress(i);
Thread.currentThread().sleep(50);
robot.keyRelease(i);

0 から 255 までで、このキーは押されません (このキーはすべての azerty キーボードに存在します)。

ここに画像の説明を入力

理由はありますか?ありがとう。

Ps : このキーを使用するために CTRL または ALT を押す必要はありません。次のようになります: "²"

4

1 に答える 1

2

新しいウィンドウを作成してみて、押されたキーのキーコードをキャプチャして印刷することができます。次に、それを実行し、問題のキーを押します。次に、次のように出力する必要がありますKeyCode

public static void main(String[] args) {
    JFrame frame= new JFrame();
    frame.addKeyListener(new KeyAdapter() {

        @Override
        public void keyPressed(KeyEvent e) {
            System.out.println(e.getExtendedKeyCode());
        }            
    });
    frame.setBounds(0, 0, 100, 50);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
}

仮想キーボードでこれを行うと、16777394が得られました

すべての「KeyCode」値については、 http://docs.oracle.com/javase/7/docs/api/constant-values.html#java.awt.event.KeyEvent.CHAR_UNDEFINEDを参照してください

于 2013-09-14T14:42:14.347 に答える