我有一個簡單的JTree。
我通過setSelectionPath()在代碼中設置了它的選定節點。Mark treeNode as selected(Swing)
一切工作正常,但我想要的是,相應的節點(我的路徑的結束)突出顯示,如果用戶用鼠標點擊它,以便在樹本身也有一個視覺反饋以指示選擇哪個節點。
問候烏鴉
我有一個簡單的JTree。
我通過setSelectionPath()在代碼中設置了它的選定節點。Mark treeNode as selected(Swing)
一切工作正常,但我想要的是,相應的節點(我的路徑的結束)突出顯示,如果用戶用鼠標點擊它,以便在樹本身也有一個視覺反饋以指示選擇哪個節點。
問候烏鴉
,我發現我的問題:
選擇在樹位於窗格當我刷新我的樹的內容。
但不是隻更新它的節點,我重新創建了完整的模型,這就是問題所在。
我使用的路徑是舊模型的路徑,這就是在新樹中無法正確選擇路徑的原因。 我切換到更新模型的方法,現在setSelectionPath()具有我想要的效果。
聚焦並展開所選節點:
jtree.setScrollsOnExpand(true)
確定 樹是否可以滾動顯示以前隱藏的子節點。
如果此屬性爲true(默認值), 節點展開樹時可以使用滾動使 節點的後代的最大可能數目可見。
jtree.setExpandsSelectedPaths(true)
允許配置JTree的自動擴展選擇的路徑。
如果你想手動管理這一點,
可以使用jtree.setExpandedState(TreePath path, boolean state)
方法
你使用:myTree.setSelectionPath(new TreePath(treeModel.getPathToRoot(treeNode)))? –
是的,我嘗試過,但它沒有從我目前的做法有任何區別... – Raven
考慮提供一個[可運行示例](https://stackoverflow.com/help/mcve),它演示你的問題。這不是代碼轉儲,而是您正在做的事情的一個例子,它突出了您遇到的問題。這將導致更少的混淆和更好的反應 – MadProgrammer