我阅读了 File Browser Gui 中的教程, 但如果结构文件夹发生变化,程序无法动态重新加载,如何在文件浏览器 GUI 中创建刷新/重新加载功能?
这是我不完整的代码
refreshPath = new JButton("Refresh");
refreshPath.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae) {
....
}
});
toolBar.add(refreshPath);
最佳答案
FileIO对于 Java 和 Native OS 也是低级别和困难的事件
基本上有两种方式
a) Watching a Directory for Changes for Java7 , 讨论 here .
b) 使用一些自定义的
FileIO Watchin
g(我不能说哪个更好,也许是Apache 的 FileWatcher
)在这两种情况下都不会通知 Swing GUI,必须使用
SwingWorker
或Runnable#Thread
通过使用
Runnable#Thread
保证输出将被通知Event Dispatch Thread
,将输出包装到 Swing GUI 到invokeLater()
SwingWorker
保证,但为了更安全的输出,您也可以使用invokeLater()
,我们谈论第 4 个。更短的代码行
关于java - 如何在基于 Jtree/Jtable 的文件列表中创建刷新/重新加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11896170/