知识大全 JTree树控件
Posted 知
篇首语:水往下流,人争上游。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 JTree树控件相关的知识,希望对你有一定的参考价值。
JTree树控件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
树和节点的基本概念 树可以用图形的方式显示众多的节点以及它们之间的关系 最常见的树的例子就是目录树 所有组成树的元素都成为节点(Node) 一棵树的最顶层的节点称为根节点 如Program 而没有子节点的节点成为叶子节点 如domain 在层次结构中 上层的节点是下层节点的父节点 而下层节点是上层节点的子节点 如图 Program是C# Programs和Programs的父节点 FileBatchRemaer 是C# Programes的子节点 有关树JTree的类和接口 JTree 显示树的核心基本类 TreeModel 定义了树的数据模型接口 DefaultTreeModel 默认的树模型接口实现类 TreeModelListener 树模型的事件监听器 TreePath 树路径 一个路径就是一个对象数组 对应于树模型中从根节点到选定节点上的所有节点集合 数组的第一个元素是根节点 按树的层次关系依次在数组中给出中间节点 最后一个元素是选定的节点 MutableTreeNode 树节点接口 对应树中的节点 树节点接口定义了与父子节点有关的方法 因此 利用树节点可以遍历整棵树 DedaultMutableTreeNode 默认的树节点的实现类 TreeSelectionModel 定义了在树上的选择节点的数据模型接口 树选择模型决定了选择节点的策略以及被选择节点的信息 TreeSelectionModelListener 树选择模型事件的监听器 代码实例 构建一棵树 DefaultMutableTreeNode root = new DefaultMutableTreeNode( Java ); DefaultMutableTreeNode j seNode=new DefaultMutableTreeNode( J SE(JavaSE) ); DefaultMutableTreeNode swingNode=new DefaultMutableTreeNode( Swing ); DefaultMutableTreeNode socketNode=new DefaultMutableTreeNode( Socket ); DefaultMutableTreeNode threadNode=new DefaultMutableTreeNode( Thread ); j seNode add(swingNode); j seNode add(socketNode); j seNode add(threadNode); DefaultMutableTreeNode j eeNode=new DefaultMutableTreeNode( J EE(JavaEE) ); DefaultMutableTreeNode jspservletNode=new DefaultMutableTreeNode( Jsp/Servlet ); DefaultMutableTreeNode jdbcNode=new DefaultMutableTreeNode( JDBC ); DefaultMutableTreeNode javaMailNode=new DefaultMutableTreeNode( Java Mail ); j eeNode add(jspservletNode); j eeNode add(jdbcNode); j eeNode add(javaMailNode); root add(j seNode); root add(j eeNode); tree = new JTree(root); 相关语句解释 // 创建一个树节点 文字为J SE(JavaSE) DefaultMutableTreeNode j seNode=new DefaultMutableTreeNode( J SE(JavaSE) ); // 创建一个文字为 Swing 的节点 添加在节点j seNode下 DefaultMutableTreeNode swingNode=new DefaultMutableTreeNode( Swing ); j seNode add(swingNode); // 创建一个文字为Java的节点作为根节点 然后以此根节点构建一棵树 j seNode j eeNode挂在root 下 DefaultMutableTreeNode root = new DefaultMutableTreeNode( Java ); root add(j seNode); root add(j eeNode); tree = new JTree(root); 注意 JTree和JTextArea JTable一样 也需要放在一个JScrollPane中 给树控件添加监听 tree addTreeSelectionListener(new TreeSelectionListener() public void valueChanged(TreeSelectionEvent evt) // 取得选择状态变化的所有路径 TreePath[] paths = evt getPaths();
for (int i= ; i<paths length; i++) // 如果处于选择状态 if (evt isAddedPath(i)) // 将路径转化为节点数组 Object[] nodes=paths[i] getPath();
// 得到最后一个节点 即选择的节点 DefaultMutableTreeNode node=(DefaultMutableTreeNode)nodes[nodes length ];
// 输出节点名 system out println(node toString()); ); 额外的一点美化工作 渲染节点 // 设定叶节点图标 Icon leafIcon = new ImageIcon(TreePanel class getResource( /leaf gif )); // 设定关闭状态节点图标 Icon closedIcon = new ImageIcon(TreePanel class getResource( /close gif )); // 设定打开状态节点图标 Icon openIcon = new ImageIcon(TreePanel class getResource( /open gif ));
cha138/Article/program/Java/hx/201311/26269相关参考