Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JUnit和JFileChooser_Java_Junit_Jfilechooser - Fatal编程技术网

Java JUnit和JFileChooser

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

我遇到了一些使用jFileChooser的测试用例的问题。我正在寻找一种在运行JUnit测试时以编程方式摆脱文件选择器窗口(而不是按ESC键7次)的方法

我已尝试在测试用例中包括以下内容:

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秒的延迟会在文件选择器被取消后生效。