我整个周末一直在撞墙,试图解决这个问题,并且还没有能够在这里找到一些我可以用来解决问题的方法。我基本上是尝试用jTree做一个文件视图,但是侧面没有显示视图,只有它通过jTree运行。
public void getList(DefaultMutableTreeNode node, File f) {
jTree1.setRootVisible(false);
DefaultMutableTreeNode child = new DefaultMutableTreeNode(null);
if (!f.isDirectory()) {
if (f.getName().endsWith("msg")) {
String fTrim = f.getName();
child = new DefaultMutableTreeNode(fTrim);
node.add(child);
}
} else {
//System.out.println("DIRECTORY - " + f.getName());
String fTrim = f.getName();
child = new DefaultMutableTreeNode(fTrim);
node.add(child);
File fList[] = f.listFiles();
for (int i = 0; i < fList.length; i++) {
System.out.println(fList[i]);
getList(child, fList[i]);
}
}
DefaultTreeModel dtm = new DefaultTreeModel(node);
DefaultTreeModel clear = new DefaultTreeModel(null);
jTree1.setModel(dtm);
}
以上是我用来构建初始列表的内容。然后我使用getList(node,file);命令也尝试运行列表的更新。这在某种意义上是有效的,但是,每次更新它时,它也会加载到树中的重复值中。以下是我打电话来尝试更新列表的方法,
private void jButton1MouseReleased(java.awt.event.MouseEvent evt) {
getList(root, new File("\\\\hqdata02\\fadata\\ecp call center\\cp - all agents\\Floor Messages\\"));
}
结果可以在下面看到
非常感谢任何帮助。在一天结束时,我只是想让它更新目录中已更改的任何值。我也意识到再次调用getList,可能只是重新添加导致问题的所有文件,我只是无法弄清楚如何让它更新。