|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
最后就是我对java的几点希望:首先是IDE工具,有人说java已经很好了,有jbuilder,eclipse,net网页编程Beans等等,但是我认为如果java想超越.net网页编程,那么他首先要解决的就是IDE工具的整合。
CheckBoxTree是一个非常经常使用的UI组件,它能利用户便利地按特定例则勾选树中的节点。本文完成了一种复杂的Checking划定规矩:当勾选了某节点后,该节点的一切上级节点全体被勾选;当作废勾选某节点后,该节点的一切上级节点全体被作废勾选。(2009.08.05最初更新)
完成CheckBoxTree的经常使用办法,就是利用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;
}
}
<p>
市场分额,java比asp高一点,因为C#是仿照java开发的,所以哦C#能做的java都能做到,但是java能做的,C#不一定都能做到。毕竟是抄袭吗。 |
|