我有被構造爲具有以下方法用JTree
:
(該BKMNode
類擴展DefaultMutableTreeNode
,將DataNode
簡單地保存數據)麻煩與插入筆記入一個JTree
void populateTree(BKMNode parent) {
for (DataNode node : nodes) {
BKMNode treeNode = new BKMNode(node.name,node.fullName,null);
// check if this node was already added before
if (! existingNodes.contains(ip + "." + node.fullName)) {
existingNodes.add(ip + "." + node.fullName);
DefaultTreeModel model = (DefaultTreeModel)tree.getModel();
model.insertNodeInto(treeNode, parent, parent.getChildCount());
System.out.println("adding " + ip + "." + node.fullName);
}
node.populateTree(treeNode);
}
// some more non-relevant code...
在應用程序啓動時創建樹時,一切都很好。
但有一次,我的應用程序使用相同的方法將節點添加到樹中。
當應用程序嘗試向樹中添加新節點時,將打印文本,但GUI
上沒有任何更改。
我打過電話JTree.invalidate()
,validate()
,repaint()
,reload()
但似乎沒有任何幫助。
的populateTree
方法總是從EDT
調用。
有誰知道這裏有什麼問題嗎?
非常感謝!
爲了更快地獲得更好的幫助,請發佈SSCCE(http://pscode.org/sscce.html)。 – 2011-01-29 12:44:05
另外,你在哪裏修改JTree?看起來您每次插入節點時都會創建一個新的DefaultTreeModel?你不應該清除現有的DefaultTreeModel並添加節點嗎? – Pace 2011-01-29 12:54:23