我在File Browser Gui中阅读了教程,但如果更改了strucutre文件夹,程序无法动态重新加载,如何在文件浏览器GUI中创建刷新/重新加载功能?
这是我的不完整代码
refreshPath = new JButton("Refresh");
refreshPath.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae) {
....
}
});
toolBar.add(refreshPath);
答案 0 :(得分:3)
FileIO也是Java和Native OS的低级别硬件事件
基本上有两种方式
a)Watching a Directory for Changes for Java7,讨论了here。
b)使用一些自定义FileIO Watchin
g(我不能建议什么是更好或更好,可能是FileWatcher by Apache
)
在这两种情况下都不会通知Swing GUI,必须使用SwingWorker
或Runnable#Thread
使用Runnable#Thread
确保输出将被通知Event Dispatch Thread
,将输出包装到Swing GUI到invokeLater()
SwingWorker
保证,但为了更安全的输出,您也可以使用invokeLater()
,我们谈论的是第4个。