在Java Swing中阻止鼠标输入

时间:2012-07-30 19:31:51

标签: java swing awtrobot mouse-cursor fest

我有一个测试FEST应用程序,它使用AWT机器人模拟Swing界面上的某些操作。我的问题是,在机器人测试执行期间移动鼠标指针似乎取消了一些编程操作,比如按下列标题。如果你在执行过程中没有碰到任何东西,那么光标会单独移动到目标并点击它。

在测试完成之前,有没有办法阻止该应用的鼠标用户输入?

也许不是一个块而是一种忽略事件的方法,强制EDT完成或屏蔽机器人当然会受到赞赏

2 个答案:

答案 0 :(得分:1)

也许您可以使用本机终端命令禁用键盘和鼠标。用于Windows的cmd.exe和用于Linux的终端(取决于应用程序是否必须只是check os name可移植,然后运行正确的命令)但是我不确定这是否会使Robot无用。我想不是。

视窗:

  

cmd.exe / c%Homedrive%\ windows \ rundll32.exe鼠标,禁用

     

cmd.exe / c%Homedrive%\ windows \ rundll32.exe键盘,禁用

对于Linux,请参阅here

<强>附录

据我所知,在没有使用JNI禁用用户的键盘和鼠标输入的情况下,纯Java是不可能的。

以下是在Java中使用JNI的鼠标和键盘的强大链接:Java Global Keyboard / Mouse Hook - JNI

答案 1 :(得分:0)

如果您很难使用AWT机器人进行端到端测试,那么尝试将测试分开,只能运行检查触摸功能的部分,而所有端到端测试都应该在构建服务器上运行

以下是AWT机器人对无头构建服务器上完成的Swing应用程序进行端到端测试的结果: http://travis-ci.org/#!/plokhotnyuk/calculator/jobs/1979904/L538