如何用Java为其他程序制作虚拟键盘?

时间:2015-07-26 04:55:35

标签: java keyboard jbutton

我想用Java制作触摸屏超极本的虚拟键盘。例如,我想用我的虚拟键盘输入Microsoft Word。

到目前为止,我使用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);
    }
    ...
}
...

我已确认按下按钮。我在KeyListener添加了JButton,并在" A"单击按钮时按下按钮,但它指向JButton而不是其他程序。

我尝试使用JButton.setFocusable(false),但它没有工作......

我已经搜索了与我类似的其他问题,但它们都是本地键入另一个Java窗口或文本框,而不是另一个程序。

所以我的问题是 - 如何将虚拟键盘输入其他程序?最好使用JButtons,但我可以接受任何建议吗?

1 个答案:

答案 0 :(得分:2)

设置JFrame的{​​{1}}属性。