如何用Java为其他程序制作虚拟键盘?
我想用Java为触摸屏超级本制作一个虚拟键盘。例如,我想用虚拟键盘键入Microsoft Word 到目前为止,我所做的是使用如何用Java为其他程序制作虚拟键盘?,java,keyboard,jbutton,Java,Keyboard,Jbutton,我想用Java为触摸屏超级本制作一个虚拟键盘。例如,我想用虚拟键盘键入Microsoft Word 到目前为止,我所做的是使用JButton来表示键,并使用Robot类来模拟计算机输入 我遇到的问题是,当我按下JButton时,它会聚焦JButton,因此Robot类将输入定向到JButton而不是我想要输入的程序,如Microsoft Word 对于按钮A,我的代码如下所示 int KeyValue = KeyEvent.VK_A; Robot robot ... JButtton.addM
JButton
来表示键,并使用Robot
类来模拟计算机输入
我遇到的问题是,当我按下JButton
时,它会聚焦JButton
,因此Robot
类将输入定向到JButton
而不是我想要输入的程序,如Microsoft Word
对于按钮A,我的代码如下所示
int KeyValue = KeyEvent.VK_A;
Robot robot ...
JButtton.addMouseListener(new MouseListener(){
...
public void mousePressed(MouseEvent e){
robot.keyPress(KeyValue);
}
public void mouseReleased(MouseEvent e){
robot.keyRelease(KeyValue);
}
...
}
...
我已经确认按钮被按下了。我在JButton
中添加了一个KeyListener
,每次单击按钮时都会按下一个“a”,但它指向JButton
而不是另一个程序
我尝试过使用JButton.setFocusable(false)
,但没有成功
我搜索过其他类似的问题,但它们都是以本机方式输入到另一个Java窗口或文本框中,而不是另一个程序
所以我的问题是-我怎样才能制作一个虚拟键盘来输入其他程序?最好使用
JButtons
,但我愿意接受任何建议?设置setFocusableWindowState的JFrame
属性(false)
您是否尝试过设置setFocusableWindowsState的JFrame属性(false)代码>?不确定按钮点击是否仍会被注册。我以前只使用了setFocusable(false)
,但它不起作用,所以我只是尝试了你的方法,效果非常好。谢谢~如果您想将解决方案作为答案发布@威尼斯。我会发帖的,谢谢!