0

プログラムで KeyEvent オブジェクトを生成し、それらをイベント キューに送り込むことで、キーボード入力をシミュレートしようとしています。これは、文字が JTextField に入力されている場合を除き、正常に機能します。たとえば、カーソル (キャレット?) が常に入力された値の末尾に移動するわけではありません。たとえば、キャレットをパイプ | 次に、これが私が得るものです:

「A」キー押下は、KEY_PRESSED、KEY_TYPED、KEY_RELEASED イベントを送信することによってシミュレートされ、JTextField 値は次のとおりです。

|A

つまり、A が入力された後、カーソル/キャレットはフィールドの先頭に戻ります。

実際の物理キーが押されたときと同じように、カーソル/キャレットを自動的に移動するにはどうすればよいですか?

4

2 に答える 2

2

JDK で Robot クラスを使用してみましたか?

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

于 2012-07-19T21:34:38.777 に答える
0

各コマンドを発行した後setCaretPosition()、JTextField 内のテキストの最後を使用するメソッドを呼び出します。これは、J*Pane を使用して呼び出すことができれば、はるかに簡単になり、getDocument()より多くの制御が可能になります。

于 2012-07-19T21:39:24.103 に答える