Swing树组件的使用

Swing树组件

一、简单的树

树状结构是一种常用的信息表现形式,它可以直观的显示出一组信息的层次结构。Swing中的JTree类是用来创建树的,该类的常用构造方法如下:

JTree():创建一个默认的树

JTreeTreeNode node):根据指定根节点创建树。

JTreeTreeModel newModel):根据指定树模型创建树.

DefaultMutableTreeNode类实现了TreeNode接口,用来创建树的节点,DefaultMutableTreeNode类的add()方法为节点添加子节点。

DefaultTreeModel类实现了TreeModel接口,该类提供了两个构造方法,所以在利用该类创建树模型时,必须指定树的根节点。构造方法如下:

DefaultTreeModelTreeNode root):创建一个采用默认方式来判断节点是否为叶子节点的树模型。

DefaultTreeModelTreeNode rootboolean askAllowsChildren):创建一个采用指定方式来判断节点是否为叶子节点的树模型。

 

 

二、处理选中节点事件

树的节点允许被选中和选中状态,通过捕获树节点的选择事件,可以处理相应的操作树的选择模式有三种,通过TreeSelectionModel类的对象可以设置树的选择模式。可以通过JTree类的getSelctionModel()方法获得TreeSelectionModel类的对象,然后通过TreeSelctionModel类的setSelectionModelint mode)方法设置选择模式,该方法的入口参数为:

SINGLE_TREE_SELECTION:只允许选中一个

CONTIGUOUS_TREE_SELECTION:允许连续选择多个

DISCONTIGUOUS_TREE_SELECTION:允许随意选中多个

当选中树节点和取消树节点的选中状态时,将发出TreeSelectionEvent事件,通过实现TreeSelectionListener接口可以捕获该事件。TreeSelectionListener接口的具体定义:

Public interface TreeSelectionListener extends EventListener{

     Void valueChangedTreeSelectionEvent e);

}

当捕获发出的TreeSelectionEvent事件时,Void valueChangedTreeSelectionEvent e)方法将被触发执行,此时可通过JTree类的getSelectionPaths()方法获得所有 被选中节点的路径,该方法将返回一个TreePath类型的数组;通过getSelectionPath()方法可以获取选中节点中的索引的最小的节点的路径,即TreePath对象,在此之前,可以通过JTree类的isSelectionEmpty()方法查看是否存在被选中的节点,可以通过getSelectionCount()方法可以获取被选中节点的数量。

 TreePath类的常用方法:

getPath():以Object数组的形式返回该路径中所有节点的对象,在数组中的顺序按照从根节点到子节点的顺序。

getLastPathComponent():获得该路径中最后一个节点的对象。

getParentPath():获得路径中除了最后一个节点的路径

pathByAddingChild():获得向路径中添加指定节点后的路径

getPathCount():获得向路径中包含节点的数量

getPathComponentint element):获得路径中指定索引位置的节点对象

 

三、遍历树节点

DefaultMutableTreeNode类提供了两组相对的遍历方式,如下:

前序遍历和后序遍历是一组相对的遍历方式,方法分别为:preorderEnumeration()和postorderEnumeration()方法,返回的是枚举类型对象。

广度优先遍历和深度优先遍历是一组相对的遍历方式,方法分别为:breadFirstEnumeration()和deptFirstEnumeration()方法,返回的是枚举类型对象。

猜你喜欢

转载自blog.csdn.net/sbcxylyt/article/details/78950970