Java JUnit和JFileChooser
我遇到了一些使用jFileChooser的测试用例的问题。我正在寻找一种在运行JUnit测试时以编程方式摆脱文件选择器窗口(而不是按ESC键7次)的方法 我已尝试在测试用例中包括以下内容:Java JUnit和JFileChooser,java,junit,jfilechooser,Java,Junit,Jfilechooser,我遇到了一些使用jFileChooser的测试用例的问题。我正在寻找一种在运行JUnit测试时以编程方式摆脱文件选择器窗口(而不是按ESC键7次)的方法 我已尝试在测试用例中包括以下内容: Robot robot = new Robot(); robot.delay(1000); robot.keyPress(KeyEvent.VK_ESCAPE); 这似乎不起作用。 你有什么建议吗 提前谢谢。只是一个猜测,但听起来您在启动JFileChooser的同一线程上运行机器人。如果内存可用,许多JF
Robot robot = new Robot();
robot.delay(1000);
robot.keyPress(KeyEvent.VK_ESCAPE);
这似乎不起作用。
你有什么建议吗
提前谢谢。只是一个猜测,但听起来您在启动
JFileChooser
的同一线程上运行机器人。如果内存可用,许多JFileChooser方法会阻止当前线程,直到用户选择了一个文件
如果尚未启动,请尝试在单独的线程中启动Robot
编辑:
例如:
// Start Robot in a new thread.
new Thread(new Runnable() {
@Override
public void run() {
Robot robot = new Robot();
robot.delay(1000);
robot.keyPress(KeyEvent.VK_ESCAPE);
}
}).start();
// Launch JFileChooser.
jFileChooser.getSelectedFile();
好问题!机器人根本不能工作吗?你有没有试着把它放在一个try/catch语句中?这样你就可以监控出了什么问题我试着把它放在一个try/catch语句中,但是没有捕获。另外,如果我设置robot.delay(10000),我注意到10秒的延迟会在文件选择器被取消后生效。