我正在寻找一个线程解决方案来每秒钟更新我的JTree。
基本上我..。
的基础上构建树
外部文件可以随意更改,树中的数据需要以某种合理的时间方式表示此更改。在不重新绘制JTree (通过面板)的整个内容窗格的情况下,我如何能够重新绘制树呢?
谢谢!
发布于 2009-09-17 18:46:12
只要让JTree的模型启动一个更新,JTree就会重新绘制自己。最简单的方法是使用DefaultTreeModel,当文件更改时,从您的文件构造TreeNodes (可能使用DefaultMutableTreeNode),并使用新创建的节点树的基节点在模型上调用setRoot()。
发布于 2009-11-03 22:57:33
我想您可能在其他地方读过这样的文章: Swing不是线程保存;)如果您想要从不同的线程更新Swing组件,那么必须让其他线程将它的更新推到Swing的事件线程上。这样做的方法是EventQueue.invokeAndWait(Runnable)。
下面是一个类似问题的代码示例(与目录树同步JTree ):http://www.onyxbits.de/content/java-and-directory-trees-joy-implementing-simple-filemanager
您应该对FileMonitor.java文件感兴趣。
发布于 2011-09-20 23:24:00
如果您的树使用DefalultTreeModel,请试一试
((DefaultTreeModel)yourTree.getModel()).reload();https://stackoverflow.com/questions/1440382
复制相似问题