求教一个关于使用树型控件的问题 我刚学tree的用法,你可以看看下面的联接http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 添加节点: DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();//此为返回你想要往其下面添加孩子的节点(得选取) if( selectedNode == null ) return; DefaultMutableTreeNode newNode = new DefaultMutableTreeNode( "new" ); model.insertNodeInto( newNode,selectedNode,selectedNode.getChildCount() );//model 为你的Tree的模型(存放数据的) //display new node TreeNode[] nodes = model.getPathToRoot( newNode ); TreePath path = new TreePath( nodes ); tree.scrollPathToVisible( path );删除节点: DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();//返回待删除的节点 if( selectedNode != null && selectedNode.getParent() != null ) { model.removeNodeFromParent( selectedNode ); } 谢谢,不过我还有一些疑问,你说DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();是返回要添加孩子的结点,那是不是说我使用二叉查找树的话就应该先通过插入数字的大小来判断到底应该接到哪个结点上?那么我又是应该通过什么来传递我输入的那个数值呢?使用insertNum.getText()?这个参数又应该传到哪里?我觉得应该是DefaultMutableTreeNode newNode = new DefaultMutableTreeNode( insertNum.getText() );就可以得到结点的名称了,而前面你所说的只是选取哪个结点吧。还有一点是我的Tree的模型使用的是如下:package Foundation;import java.util.*;import java.io.Serializable;public class SearchTreeNode { Comparable contents; SearchTreeNode left; SearchTreeNode right; SearchTreeNode(Comparable obj) { contents = obj; left = null; right = null; } public String toString() { return contents.toString(); } boolean isInternal () { return (left != null) || (right != null); }}但是我使用SearchTreeNode来代替model有错误(这个类是定义在另外一个.java源文件里的),显然是没有insertNodeInto()方法的。我定义了private javax.swing.JTree BinaryTree = new javax.swing.JTree();那么insertNodeInto()方法是在哪个类下面的呢?能不能再帮我看看,谢谢了。 insertNodeInto()方法DefaultTreeModel类的一个方法 没有输出 请大家帮忙看看 感谢 递归问题(面试题) 如何解答 jsp 如何生成静态html? ???怎么样将数据显示到页面上 ?? 我被公司的高手震撼了!!!!!散分!!!!!! 请问在JList中用什么方法可以获取,jlist中的行 求助,初学者一个关于数组的问题 label相关的问题,高手请进来帮帮我! 关于JAVA初学的问题,兄弟在此谢过 为什么不能显示汉字!! 招聘Java程序员(北大方正电子有限公司) 汉字显示
DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();//此为返回你想要往其下面添加孩子的节点(得选取)
if( selectedNode == null ) return; DefaultMutableTreeNode newNode = new DefaultMutableTreeNode( "new" );
model.insertNodeInto( newNode,selectedNode,selectedNode.getChildCount() );//model 为你的Tree的模型(存放数据的) //display new node
TreeNode[] nodes = model.getPathToRoot( newNode );
TreePath path = new TreePath( nodes );
tree.scrollPathToVisible( path );删除节点:
DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();//返回待删除的节点
if( selectedNode != null && selectedNode.getParent() != null ) {
model.removeNodeFromParent( selectedNode );
}
package Foundation;
import java.util.*;
import java.io.Serializable;public class SearchTreeNode {
Comparable contents;
SearchTreeNode left;
SearchTreeNode right;
SearchTreeNode(Comparable obj)
{
contents = obj;
left = null;
right = null;
} public String toString()
{
return contents.toString();
} boolean isInternal ()
{
return (left != null) || (right != null);
}
}
但是我使用SearchTreeNode来代替model有错误(这个类是定义在另外一个.java源文件里的),显然是没有insertNodeInto()方法的。我定义了private javax.swing.JTree BinaryTree = new javax.swing.JTree();那么insertNodeInto()方法是在哪个类下面的呢?能不能再帮我看看,谢谢了。