如何通过编程生成KeyEvent来模拟键盘输入(包括光标移动)

时间:2012-07-19 21:28:36

标签: java swing cursor jtextfield keyevent

我试图通过以编程方式生成KeyEvent对象并将它们泵入事件队列来模拟键盘输入。这种方法很好,除了当字符输入到JTextField中时,例如,光标(插入符号?)不会始终位于输入值的末尾。例如,如果我们将插入符号表示为管道|那就是我得到的:

通过发送KEY_PRESSED,KEY_TYPED,KEY_RELEASED事件来模拟'A'按键,并且JTextField值为:

| A

即,在输入A后,光标/插入符号返回到字段的开头。

如何让光标/插入符号自动移动,就像按下实际的物理键一样?

2 个答案:

答案 0 :(得分:2)

您是否尝试过在JDK中使用Robot Class?

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

答案 1 :(得分:0)

发出每个命令后,调用一个方法,该方法使用setCaretPosition()到JTextField文本的末尾。如果您使用J * Pane,这将更容易,因此您可以致电getDocument(),您将获得更多控制权。