0

そう。少し問題が発生しました。ほとんどの場合、私はJavaに非常に慣れていないためです。とにかく、私の質問は次のとおりです。なぜこれが機能しないのですか?

public static void pressKey(KeyEvent key) throws AWTException {
    Robot r = new Robot();
    r.keyPress(KeyEvent.key);
    r.keyRelease(KeyEvent.key);
}

このようなものを機能させるにはどうすればよいですか?それは私の人生をずっと楽にするでしょう。事前に感謝

4

3 に答える 3

0

その「キー」変数は整数です。KeyEvent は覚えやすい使い方ですが、どちらも整数です。

これは、メソッドがKeyEventではなく整数を使用することを意味します。

次のメソッドがあるとします。

public static void press(int event) throws AWTException {
    Robot bot = new Robot();
    bot.keyPress(event);
    bot.keyRelease(event);
}

KeyEvent と整数の 2 つの方法で呼び出すことができます。まったく同じです ('throws' ステートメントまたは 'try/catch' を追加することを忘れないでください):

press(KeyEvent.VK_SLASH);

または:

press(46);

私が正しければ、両方ともスラッシュを送信します (間違っている場合は修正してください)。しかし、KeyEvents の方がはるかに簡単です。

また、すべてのキーボードが同じレイアウトであるとは限らないことに注意してください。キーによっては、まったく異なるキーが送信されたり、さらに悪いことに、ロボットが IllegalArgumentException をスローしたりします。文字/数字以外の文字には Alt コードを使用することをお勧めします。

于 2012-12-22T03:20:49.570 に答える