2012-05-04 10 views
3

JFileChoosersを使用するいくつかのテストケースで問題が発生しています。 JUnitテストを実行しているときに、ESCを7回押す代わりにプログラムでファイル選択ウィンドウを取り除く方法を探しています。JUnitとJFileChoosers

私は私のテストケースには、以下が含まれるようにしようとしました:

Robot robot = new Robot(); 
robot.delay(1000); 
robot.keyPress(KeyEvent.VK_ESCAPE); 

これが動作するようには思えません。 提案がありますか?

ありがとうございます。

+0

良い質問!ロボットはまったく動作しませんか? try/catchステートメントに入れてみましたか?あなたは何がうまくいかないのか監視することができます。 –

+0

私はtry/catchステートメントに入れてみましたが、キャッチはしません。また、robot.delay(10000)を設定した場合、ファイル選択が終了してから** 10秒遅れていることに気付きました。 – Kukiwon

答えて

2

Robotは、JFileChooserを起動しているスレッドと同じスレッドで実行しているようです。メモリが使用されている場合、多くのJFileChooserメソッドは、ユーザーがファイルを選択するまで現在のスレッドをブロックします。

Robotが別のスレッドで起動していない場合は、試してみてください。

EDIT:たとえば

// 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(); 
+0

ありがとう、それは働く:) – Kukiwon

+0

ニースの答え! upvote :) –