当前位置: 代码迷 >> java >> 如何用Java为其他程序制作虚拟键盘?
  详细解决方案

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

热度:51   发布时间:2023-07-17 20:16:55.0

我想用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);
    }
    ...
}
...

我已确认按下按钮。 我向JButton添加了一个KeyListener ,每当我点击按钮时都会按下“A”,但它是针对JButton而不是其他程序。

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

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

所以我的问题是 - 我如何制作一个键入其他程序的虚拟键盘? 最好使用JButtons但我愿意接受任何建议吗?

设置setFocusableWindowState(false);JFrame属性setFocusableWindowState(false);

  相关解决方案