Java Swing中的JTree模型
本文介绍Java Swing中的JTree模型,介绍如何创建、修改、遍历,设置树。参考Core Java2相关章节及其源代码。
Swing树使用人们所熟悉的文件夹和树叶图来显示分层的数据。树由节点组成,节点可以是文件夹,也可以是树叶。文件夹可以有子节点,除根节点之外的所有节点都只有一个父节点。空的文件夹与树叶的不同之处就在于它允许有子节点。
除父节点和子节点外,树的节点还有一个用户对象(当使用DefaultTreeModel时就会呈现一个用户对象)。用户对象是Object类型,因此它提供了一个将任意对象与节点相关联的办法。
树有一个简单的模型,每一个JTree实例都要维护对绘制器和编辑器的引用,这个绘制器和编辑器被树中所有的节点所使用。表1中列出了swing.tree包中的主要类。
表1 Swing.tree包中的主要类
名 称 实 现
DefaultMutableTreeNode 一个具有一个父节点、(可能)许多子节点和 一个用户对象的可变节点,为相关联的节点提供了访问方法。如果没有任何子节点,这个节点就是树叶。
DefaultTreeModel 一个激发TreeModel Events事件的简单可变的模型。提供对子节点的访问方法,但不是提供对父节点的访问方法。
DefaultTreeCellEditor 绘制器和编辑器的包装器,它把一个“真正”的编辑器组件放在节点图标的旁边。
DefaultTreeCellRenderer 具有字体、颜色和图标访问方法的JLabel扩 展,它提供图标的缺省值。
TreePath 由一个节点到另一个节点的路径。路径中的节点存储在一个数组中。路径用于在选取内容之间进行通信。
1.构建树模型
详细代码见SimpleTree.java
DefaultMutableTreeNode root = new DefaultMutableTreeNode("World");
DefaultMutableTreeNode country = new DefaultMutableTreeNode("USA");
root.add(country);
。。。
JTree tree = new JTree(root);
Container contentPane = getContentPane();
contentPane.add(new JScrollPane(tree));
这些代码来自一个JFrame的构造子中。这里通过JTree来创建一个TreeModel的实例。
2.树结点
树节点由TreeNode接口定义,TreeNode接口被MutableTreeNode接口扩展,而MutableTreeNode接口又由 DefaultMutableTreeNode类来实现。
树结构详细类图
2.1 TreeNode接口
TreeNode接口定义了(固定)树节点的实质,表2总结了TreeNode相关方法。
表2TreeNode接口
public abstract Enu
相关文档:
昨天看到留言,于是今天又把一些功能加进进去了
比如,
1,程序可以最小化到系统托盘区
2,程序可以批量保存所有截过的图片
3,修正了以前的一个小BUG,那就是输入保存图片的文件名时,如果没有输入后缀名,将保存正常,如果输入了后缀名,将会保存格式出错
打包文件请点击这里下载,dist文件夹里面的JAR文件是可以双击执行的
感 ......
其技巧就是:定义一个简单接口,并在该接口中声明我们要调用的方法,一般可以应用在键盘鼠标事件跟踪。
下面举一个例子:
假定我们希望在某个事件发生时得到通知。我们可以定义一个接口:
/*
* 在某个事件发生时得到通知.
*/
public interface InterestingEvent {
public void interestingEvent() ......
在网上看了好多人,对jdk的环境变量配法不祥,在此小结一下
前提条件:电脑上安装了jdk
步骤:
1)我的电脑/系统属性/高级/环境变量/用户变量/新建
a)变量名:JAVA_HOME
变量值:E:\Program Files\Java\jdk1.5.0_04(jdk安装路径)
b)变量名:PATH
变量值:%JA ......