标签:
树中特定的节点可以由 TreePath
(封装节点及其所有祖先的对象)标识,或由其显示行(其中显示区域中的每一行都显示一个节点)标识。展开 节点是一个非叶节点(由返回 false 的 TreeModel.isLeaf(node)
标识),当展开 其所有祖先时,该节点将显示其子节点。折叠 节点是隐藏它们的节点。隐藏 节点是位于折叠祖先下面的节点。所有可查看 节点的父节点都是可以展开的,但是可以显示它们,也可以不显示它们。显示 节点是可查看的并且位于可以看到它的显示区域。
构造方法摘要 | |
---|---|
JTree() 返回带有示例模型的 JTree 。 |
|
JTree(Hashtable<?,?> value) 返回从 Hashtable 创建的 JTree ,它不显示根。 |
|
JTree(Object[] value) 返回 JTree ,指定数组的每个元素作为不被显示的新根节点的子节点。 |
|
JTree(TreeModel newModel) 返回 JTree 的一个实例,它显示根节点 - 使用指定的数据模型创建树。 |
|
JTree(TreeNode root) 返回 JTree ,指定的 TreeNode 作为其根,它显示根节点。 |
|
JTree(TreeNode root, boolean asksAllowsChildren) 返回 JTree ,指定的 TreeNode 作为其根,它用指定的方式显示根节点,并确定节点是否为叶节点。 |
|
JTree(Vector<?> value) 返回 JTree ,指定 Vector 的每个元素作为不被显示的新根节点的子节点。 |
public JTree(TreeNode root)
JTree
,指定的 TreeNode
作为其根,它显示根节点。默认情况下,树可以将叶节点定义为不带子节点的任何节点。
import javax.swing.JFrame; import javax.swing.JTree; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.DefaultMutableTreeNode; public class TreeDemo { public static void main(String[] args) { // 创建没有父节点和子节点、但允许有子节点的树节点,并使用指定的用户对象对它进行初始化。 // public DefaultMutableTreeNode(Object userObject) DefaultMutableTreeNode node1 = new DefaultMutableTreeNode( "软件部" ); node1.add( new DefaultMutableTreeNode( new User( "小花" ))); node1.add( new DefaultMutableTreeNode( new User( "小虎" ))); node1.add( new DefaultMutableTreeNode( new User( "小龙" ))); DefaultMutableTreeNode node2 = new DefaultMutableTreeNode( "销售部" ); node2.add( new DefaultMutableTreeNode( new User( "小叶" ))); node2.add( new DefaultMutableTreeNode( new User( "小雯" ))); node2.add( new DefaultMutableTreeNode( new User( "小夏" ))); DefaultMutableTreeNode top = new DefaultMutableTreeNode( "职员管理" ); top.add( new DefaultMutableTreeNode( new User( "总经理" ))); top.add(node1); top.add(node2); final JTree tree = new JTree(top); JFrame f = new JFrame( "JTreeDemo" ); f.add(tree); f.setSize( 300 , 300 ); f.setVisible( true ); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 添加选择事件 tree.addTreeSelectionListener( new TreeSelectionListener() { @Override public void valueChanged(TreeSelectionEvent e) { DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree .getLastSelectedPathComponent(); if (node == null ) return ; Object object = node.getUserObject(); if (node.isLeaf()) { User user = (User) object; System.out.println( "你选择了:" + user.toString()); } } }); } } class User { private String name; public User(String n) { name = n; } // 重点在toString,节点的显示文本就是toString public String toString() { return name; } } |
http://www.cnblogs.com/taoweiji/archive/2013/02/08/2909214.html
标签:
原文地址:http://www.cnblogs.com/softidea/p/4529285.html