[英]JTree sometimes not expanding
我有一個非常大的項目,我正在研究,圖形編輯器,我在使用swing組件時遇到了一些大問題。 然而,現在我有一個程序員最糟糕的噩夢,一個只在某些時候發生的錯誤。
如果我嘗試選擇JTree
的元素,無論是在添加元素時,還是在圖表中選擇它們時選擇它們( JInternalFrame
),其中一些元素都不會被擴展。
我的結構是這樣的,我有一個工作區,包含包含圖表的項目和項目。 圖表包含我擁有的所有元素,例如圓圈,矩形等,在文件夾中(如果它們是圓圈,則將它們放在圓圈文件夾中......)。
另一件需要知道的是我通過JTree
setSelectedPath/Paths
方法選擇我的元素。
一些可能有助於理解我做什么和我嘗試過的事情:
getTreeModel.getPathToRoot
返回好路徑) expandsSelectedPaths
設置為true 我希望有人知道該怎么做,雖然我認為這是一個非常復雜的問題。 請問任何可能對您有幫助的事情。
好的,謝謝大家回答,但我找到了一個非常簡單的解決方法來解決這個問題。 由於某種原因,如果最后一個路徑組件是葉子,則擴展的東西沒有效果。
我所做的只是讓我的葉子節點為isLeaf
方法返回false ,並且我的所有問題都消失了。
如果addWhatever()
到JTree
觸發正確的TreeModelEvent
( fireChildAdded()
, firePathChanged()
, fireChildrenLoaded()
, treeStructureChanged()
)
GUI的所有更改都將移動到BackGround Task(s)
,請查看SwingWorker
或Runnable#Thread
BackGround Task(s)
(最清晰,最簡單的方法),但Runnable#Thread
需要將所有輸出(Swing方法)包裝到invokeLater
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.