java - 如何在基于 Jtree/Jtable 的文件列表中创建刷新/重新加载?

标签 java swing jtable jtree .refresh

我阅读了 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 Watching(我不能说哪个更好,也许是 Apache 的 FileWatcher)

  • 在这两种情况下都不会通知 Swing GUI,必须使用 SwingWorkerRunnable#Thread

  • 通过使用 Runnable#Thread 保证输出将被通知 Event Dispatch Thread,将输出包装到 Swing GUI 到 invokeLater()

  • SwingWorker 保证,但为了更安全的输出,您也可以使用 invokeLater(),我们谈论第 4 个。更短的代码行

关于java - 如何在基于 Jtree/Jtable 的文件列表中创建刷新/重新加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11896170/

相关文章:

java - 何时何地在 Java 中使用外观和委托(delegate)模式?

Java 9 JRE 导致 java.lang.NoClassDefFoundError : org/apache/commons/lang3/StringUtils on jar execution

java - 我的 Keylistener 不起作用,我想知道原因

java - 从以下位置重新填充 JTable

java - 如何使用Vector作为数据源?

java - Collections.unmodifyingMap 可以保留原始 map 吗?

java,两个整数,它们相等但是

java - 如何在具有随机大小和随机坐标的画圆内绘制字母?

java - JPanel java 未显示

java - Swing MVC - 模型中的数据