WEB开发网
开发学院软件开发Java 一个简单的CheckBox Tree实现 阅读

一个简单的CheckBox Tree实现

 2009-09-23 00:00:00 来源:WEB开发网   
核心提示:CheckBox Tree是一个十分常用的UI组件,它能使用户方便地按特定规则勾选树中的节点,一个简单的CheckBox Tree实现,本文实现了一种简单的Checking规则:当勾选了某节点后,该节点的所有下级节点全部被勾选;当取消勾选某节点后,只简单地返回它自己的实例即可,而对于勾选或取消勾选的条件,该节点的所有下

CheckBox Tree是一个十分常用的UI组件,它能使用户方便地按特定规则勾选树中的节点。本文实现了一种简单的Checking规则:当勾选了某节点后,该节点的所有下级节点全部被勾选;当取消勾选某节点后,该节点的所有下级节点全部被取消勾选。(2009.08.05最后更新)

实现CheckBox Tree的常用方法,就是使用JCheckBox作为JTree的TreeCellRendrer,并且需要实现特定的Checking规则来勾选/取消勾选CheckBox。

1. 树节点

DefaultMutableTreeNode是最常用的TreeNode实现,此处我们将扩展这一实现--CheckBoxTreeNode,增加一个属性isChecked,用于标识该节点是否要被勾选上。该类的完整代码如下所示:

public class CheckBoxTreeNode extends DefaultMutableTreeNode {
       private static final long serialVersionUID = 3195314943599939279L;
       private boolean isChecked = false;
       public CheckBoxTreeNode(Object userObject) {
               super(userObject);
       }
       public boolean isChecked() {
               return isChecked;
       }
       public void setChecked(boolean isChecked) {
               this.isChecked = isChecked;
       }
}

2. 渲染器

如本文开头所述,我们将使用JCheckBox作为树节点展现形式的渲染器,同时确定对节点进行勾选或取消勾选的规则。CheckBoxTreeCellRenderer本身即是一个JCheckBox,那么在实现getTreeCellRendererComponent方法时,只简单地返回它自己的实例即可,而对于勾选或取消勾选的条件,则由CheckBoxTreeNode中的isChecked属性来确定,完整的代码如下所示:

1 2 3  下一页

Tags:一个 简单 CheckBox

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接