当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:13:00  来源:本站整理

一个简单的CheckBox Tree实现[Java编程]

赞助商链接



  本文“一个简单的CheckBox Tree实现[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

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属性来肯定,完好的代码以下所示:

public class CheckBoxTreeCellRenderer extends JCheckBox implements TreeCellRenderer {
        private static final long serialVersionUID = -6432020851855339311L;
        public CheckBoxTreeCellRenderer() {
                setOpaque(false);
        }
        public Component getTreeCellRendererComponent(JTree tree, Object value,
                        boolean selected, boolean expanded, boolean leaf, int row,
                        boolean hasFocus) {
                CheckBoxTreeNode node = ((CheckBoxTreeNode) value); // 获得树节点对象.
                setText(node.toString()); // 设置CheckBox所展示的文本.
                // 当树节点被设置为勾选时,则该节点对应的CheckBox被勾选上;不然,撤消勾选.
                if (node.isChecked()) {
                        setSelected(true);
                        setForeground(Color.BLUE);
                } else {
                        setSelected(false);
                        setForeground(tree.getForeground());
                }
                return this;
        }
}


  以上是“一个简单的CheckBox Tree实现[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • Access 2000教程:1.5 一个简单的数据库
  • 一个简单的服务器和客户机程序
  • <b>操纵Java实现一个简单的递归算法的实例</b>
  • 一个简单的Timer Service
  • 用JBuilder7开辟一个简单的J2EE操纵
  • <b>一个简单的记事本代码(二)</b>
  • 一个简单的记事本代码(三)
  • <b>一个简单的记事本代码(一)</b>
  • [JAVA100例]050、一个简单的Web服务器
  • 一个简单的JAVA日历程序
  • 一个简单的CheckBox Tree实现
  • 用java实现一个简单的序列化的例子
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .