【问题标题】:How to simulate keyboard input (including cursor movement) by programmatically generating KeyEvents如何通过编程生成 KeyEvents 来模拟键盘输入(包括光标移动)
【发布时间】:2012-07-19 21:28:36
【问题描述】:

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

通过发送 KEY_PRESSED、KEY_TYPED、KEY_RELEASED 事件来模拟“A”按键,JTextField 值为:

|一个

也就是说,在输入 A 之后,光标/插入符号又回到了字段的开头。

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

【问题讨论】:

  • 也许你可以试试 xte (xautomation)。

标签: java swing cursor jtextfield keyevent


【解决方案1】:

您是否尝试过在 JDK 中使用机器人类?

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2015-12-25
      • 1970-01-01
      • 2011-06-01
      • 1970-01-01
      • 2020-02-13
      • 2022-10-13
      • 2012-09-21
      • 2014-05-13
      相关资源
      最近更新 更多