2012-04-30 59 views
0

我有一個顯示特定目錄內容的JTree。當用ftp下載一些文件到這個目錄時,我想讓我的JTree知道它並刷新他的內容。 如何在JTree的根目錄下添加或刪除某個文件後刷新JTree?如何在java中刷新JTree的內容?

btnRefreshContents.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      tree.getModel(). 
     } 
    }); 

回答

3

如果您使用的是Java 7,您可以使用新的WatchServiceFileSystem.newWatchService())來檢測更改文件系統。這是一個article on it

關於更新JTree組件,請看Stack Overflow page

+0

我使用Java 1.5。 – itro

+1

@itro:好吧,這是一個恥辱 - 你將不得不自己輪詢目錄... –

+0

你是對的,但我沒有其他選擇。我必須使用Java 1.5。 將文件添加到同一目錄後重新加載JTree是否是一個好主意? – itro

0

您可以將目錄偵聽器添加到底層樹模型。有很多解決方案。如前所述,Java 7中的above,WatchService可能很有用。但是由於你還沒有在Java 7上,你可以嘗試其他方法:

JNotify - 允許java應用程序監聽文件系統事件的java庫。這裏是一個sample(確保你添加了dll/so依賴關係到你的路徑。)

VFS來自Apache Commons。 Commons VFS提供了一個用於訪問各種不同文件系統的API。 DefaultFileMonitor就是一個很好的例子。