2012-06-18 72 views

回答

6

沒有默認自動,您必須自己實現它。幾種可能性,都涉及一個自定義TreeModelListener註冊到樹的模型。聽者作用於接收treeNodesInserted

  • 手動擴展JTree的到路徑
  • 選擇設置爲路徑(隱式地擴展了樹如果expandsSelectedPaths屬性爲true這是默認)

代碼片段:

class MyTreeModelListener implements TreeModelListener { 

    public void treeNodesInserted(TreeModelEvent e) { 
      // first option 
      myTree.expandPath(e.getPath()); 
      // second option 
      myTree.setSelectionPath(e.getPath()); 
    } 

    // empty implementation of other listener methods 
    ... 
} 

// usage 
myTree.getModel().addTreeModelListener(new MyTreeModelListener()); 
+0

感謝您的回答。它的工作 –

+0

優秀的答案。簡單,簡潔,直接點;同時仍提供成功實施所需的全部信息。 +1 – XenoRo

+0

我無法得到這個工作,所以我試圖展開所有行,這對我也不起作用。在我的測試中,看起來treeNodesInserted在節點添加到TreeModel後調用,但在JTree(實際上是一個jidesoft NavigationTree)添加了行之前調用,因此這些行不可擴展。我錯過了什麼嗎? – amos