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



这个问题可能很奇怪。但我正试图让它理解。我正在尝试用java制作屏幕键盘。它应该在激活光标的位置写入字符。就像打开一个微软的word文件,键盘我想写在该word文件中。可能是我在视觉工作室中编码,我将通过单击键盘键在视觉工作室中编写代码。如何使用键盘在其他应用程序中书写。谁能给我任何想法?提前谢谢。我已经用秋千制作了键盘布局(字母和数字字符)。

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

主要问题是,一旦您单击窗口中的按钮,窗口就会聚焦,并且按钮成为键盘焦点的活动接收者,这意味着您尝试在任何位置发送击键最终都会被您刚刚单击的按钮消耗。

解决此问题的最简单方法是使所有按钮无法聚焦,使用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

您可以使用机器人类

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

这有两种方法,按键和释放键,您必须调用它们来模仿按键。

这可以称为传入 KeyEvent 常量。

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