有谁用过JTree,100分奉送。(100分)

  • 主题发起人 主题发起人 happyrodger
  • 开始时间 开始时间
H

happyrodger

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在在用Swing JTree时出现了一个小问题。我的树设置了3层,每次创建我都是
先创建一个中间节点,然后在该中间节点下创建若干叶节点。所采用的方法是先取得
树的TreeModel,然后通过它获得树的root,然后创建新的DefaultMutableTreeNode,
将它add到root节点下,再然后将要加的叶节点以DefaultMutableTreeNode类型加到该
节点下。最后以root生成新的TreeModel,然后将该TreeModel设置为树的TreeModel。
在树的显示的时候,我要得到整棵展开的树,于是用了以下办法:
jTree1.expandPath(new TreePath(jTree1.getModel().getRoot()));
可是最后得到的只是展开到第二层的树。后来我又换了从中间节点展开,结果仍然一样,
所用的方法如下:
获得中间节点middleNode;
获得叶节点索引index;
jTree1.expandPath(new TreePath(middelNode.childrenAt(index));
有没有高手能够指点迷津。谢谢。
 
public static void expandAllNodes(JTree tree) {
for (int i=0;
i<tree.getRowCount();
i++ )
{
tree.expandRow(i) ;
}
}
我写的的展开所有Node节点的函数。
 
我查到了JTree有一个重要的方法,可以展开树。
JTree.makeVisible(TreePath path);//用于没有放置于scrollpane上的JTree显示
或者:
JTree.scrollPathToVisible(TreePath path);//用于滚动显示展开的树。
这两个方法都要求先获得你所创建或者选取的树节点到根节点的路径,通常可用来展开
某一特定子树。你的方法可以显示整棵展开的树,也是一种方法。
 
晤,说得没错
 
接受答案了.
 
后退
顶部