我在我的swing應用程序中有一個JTree,顯示一個long數據列表(int樹模式)。Java Swing JTree TreeModel - 如何做懶惰的初始化
問題是TreeModel在初始化過程中加載所有項目,我不需要全部加載它們。在一個屏幕上只有100個可顯示,因此沒有意義要加載數千個數據以在一個屏幕中僅顯示100個數據。
問:有什麼辦法可以在TreeModel中進行一種惰性初始化,並在需要時檢索數據?
感謝所有
我在我的swing應用程序中有一個JTree,顯示一個long數據列表(int樹模式)。Java Swing JTree TreeModel - 如何做懶惰的初始化
問題是TreeModel在初始化過程中加載所有項目,我不需要全部加載它們。在一個屏幕上只有100個可顯示,因此沒有意義要加載數千個數據以在一個屏幕中僅顯示100個數據。
問:有什麼辦法可以在TreeModel中進行一種惰性初始化,並在需要時檢索數據?
感謝所有
TreeWillExpandListener 見例如this
我假設你正在使用DefaultTreeModel的。
我已經通過實施自定義TreeModel解決了這樣的問題。它看起來很複雜,但一旦你進入它,你會發現它並沒有那麼糟糕。你只有8種方法可以實現,如果你已經有了一個類似樹的數據結構,那麼大多數方法都是非常簡單的。
這種方法的主要好處是您可以完全控制底層模型。
@StanislavL:問題是,當我將模型設置爲Tree時,即使在顯示它們之前立即檢索所有記錄(近2000條記錄)。 – mhshams 2011-05-01 11:12:53
@StanislavL +1很好的答案我可以看到你如何使用它來達到這個目的。 – Boro 2011-05-01 11:38:05
@mohammad shamsi你可以請分享代碼,我可以玩它,我討厭從頭開始。我對可複製的解決方案感興趣,以備將來參考。 – Boro 2011-05-01 11:49:39