我正在创建一个简单的测试应用程序,它每小时使用JFileChooser通过thread.sleep()在选择的目录/ s上运行检查。但是,当我选择目录并运行该方法时,ui面板变灰,并且swing位消失了。该线程似乎将UI以及其调用的方法一起置于睡眠状态。
if (option == JFileChooser.APPROVE_OPTION) {
selectedDirectory = chooser.getSelectedFiles();
try {
while (true) {
runCheck(selectedDirectory);
Thread.sleep(1000*5);//1000 is 1 second
}
} catch (InterruptedException e1) {
Thread.currentThread().interrupt();
e1.printStackTrace();
}
}
我正在寻找一种解决方法,以便我可以在UI中打印运行检查的结果。.setText(result)
SwingWorker
?http://download.oracle.com/javase/6/docs/api/javax/swing/SwingWorker.html - sje397javax.swing.Timer
而不是util包中的Timer。 - jjnguy