invisiblenode.java

来自「tame,扩展了好多SWing组件:JTable」· Java 代码 · 共 85 行

JAVA
85
字号
/* (swing1.1) */package tame.tree;import java.util.Enumeration;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.tree.TreeNode;/**@author Nobuo Tamemasa@version 1.0 01/12/99*/public class InvisibleNode extends DefaultMutableTreeNode  {  protected boolean isVisible;  public InvisibleNode() {    this(null);  }  public InvisibleNode(Object userObject) {    this(userObject, true, true);  }  public InvisibleNode(Object userObject, boolean allowsChildren		       , boolean isVisible) {    super(userObject, allowsChildren);    this.isVisible = isVisible;  }  public TreeNode getChildAt(int index,boolean filterIsActive) {    if (! filterIsActive) {      return super.getChildAt(index);    }    if (children == null) {      throw new ArrayIndexOutOfBoundsException("node has no children");    }    int realIndex    = -1;    int visibleIndex = -1;    Enumeration enum1 = children.elements();    while (enum1.hasMoreElements()) {      InvisibleNode node = (InvisibleNode)enum1.nextElement();      if (node.isVisible()) {	visibleIndex++;      }      realIndex++;      if (visibleIndex == index) {	return (TreeNode)children.elementAt(realIndex);      }    }    throw new ArrayIndexOutOfBoundsException("index unmatched");    //return (TreeNode)children.elementAt(index);  }  public int getChildCount(boolean filterIsActive) {    if (! filterIsActive) {      return super.getChildCount();    }    if (children == null) {      return 0;    }    int count = 0;    Enumeration enum1 = children.elements();    while (enum1.hasMoreElements()) {      InvisibleNode node = (InvisibleNode)enum1.nextElement();      if (node.isVisible()) {	count++;      }    }    return count;  }  public void setVisible(boolean visible) {    this.isVisible = visible;  }  public boolean isVisible() {    return isVisible;  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?