0

質問がおかしいかもしれません。しかし、私はそれを理解しようとしています。Javaでスクリーンキーボードを作ろうとしています。カーソルがアクティブになっている場所に文字を書き込む必要があります。ちょうど、Microsoft Word ファイルを開き、その Word ファイルに書きたいキーボードを入力します。ビジュアル スタジオでコーディングしている可能性があります。キーボードのキーをクリックして、ビジュアル スタジオでコードを記述します。キーボードを使用して他のアプリケーションに書き込むにはどうすればよいですか? 前もって感謝します。キーボードレイアウト(英数字)をswingで作りました。

4

2 に答える 2

3

主にキーボードフォーカスを中心に展開する一連の複合的な問題があります。

主な問題は、ウィンドウ内のボタンをクリックすると、ウィンドウがフォーカスされ、ボタンがキーボード フォーカスのアクティブな受信者になることです。クリックしただけです。

これを回避する最も簡単な方法は、 を使用JButton#setFocusableして渡すことで、すべてのボタンをフォーカス不可にすることfalseです。

キーストロークをアクティブなウィンドウにプログラムで送信するには、Robotクラスを使用できます

例えば...

Robot bot = new Robot();
bot.setAutoDelay(100); // I find a small delay between events helps a lot...
bot.keyPress(KeyEvent.VK_A);
bot.keyRelease(KeyEvent.VK_A);

あなたも見てみたいと思うかもしれませWindow#setAlwaysOnTopWindow#setFocusableWindowState

于 2013-10-21T03:01:39.663 に答える
2

Robot クラスを使用できます

http://docs.oracle.com/javase/7/docs/api/java/awt/Robot.html

これには、keyPress と keyRelease の 2 つのメソッドがあり、キーの押下を模倣するために呼び出す必要があります。

これは、KeyEvent 定数を渡すことと呼ぶことができます。

Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_A);
robot.keyRelease(KeyEvent.VK_A);
于 2013-10-21T02:58:13.380 に答える