写文本光标被激活的文本(就像在屏幕键盘上一样)

时间:2013-10-21 02:47:27

标签: java

这个问题可能很奇怪。但我想让它明白。我想在java中制作一个屏幕键盘。它应该写入激活光标的字符。就像,打开一个微软word文件,我想在那个word文件中写入键盘。可能是我在visual studio编码,我会通过点击键盘键在visual studio中编写代码。如何用我的键盘在其他应用程序中编写。任何人都可以给我任何想法吗?提前致谢。 我用摇摆来制作键盘布局(字母和数字字符)。

2 个答案:

答案 0 :(得分:3)

你有一系列复合问题,主要围绕键盘焦点。

主要问题是,一旦你点击窗口中的一个按钮,窗口就会聚焦,而按钮会成为键盘焦点的活动接收者,这意味着你所做的任何尝试都会发送一个按键,任何地方最终会被消耗掉你刚刚点击的按钮。

最简单的方法是使用JButton#setFocusable并将false传递给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); ,使所有按钮无法对焦。

要以编程方式将击键发送到活动窗口,您可以使用Robot

例如......

{{1}}

您可能还想查看Window#setAlwaysOnTopWindow#setFocusableWindowState

答案 1 :(得分:2)

您可以使用Robot类

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

这有两个方法,keyPress和keyRelease,你必须打电话来模仿按键。

这可以称为传入KeyEvent常量。

Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_A);
robot.keyRelease(KeyEvent.VK_A);