personnode.java

来自「鼠标拖拽的例子」· Java 代码 · 共 46 行

JAVA
46
字号
import javax.swing.tree.*;

/** This class forces "male" nodes to have leaf icons and
forbids male childbaring ability */
public class PersonNode extends DefaultMutableTreeNode  {

  public PersonNode(PersonalInfo info) {
    super(info);
  }

  /** Override a few methods... */
  public boolean isLeaf() {
    //Note: Male == true;
    return ((PersonalInfo) getUserObject()).isMale();
  }

  public boolean getAllowsChildren() {
    //Note: Male == true;
    return !((PersonalInfo) getUserObject()).isMale();
  }

  public void add(DefaultMutableTreeNode child) {
    super.add(child);
    //System.out.println(child + " added to " + this);

    PersonalInfo childPI = (PersonalInfo) ((PersonNode) child).getUserObject();

    PersonalInfo oldParent = childPI.getParent();
    //if (parent != null) oldParent.remove(childPI);

    PersonalInfo newParent = (PersonalInfo) getUserObject();

    newParent.add(childPI);
  }

  public void remove(DefaultMutableTreeNode child) {
    super.remove(child);
    //System.out.println(child + " removed from " + this);

    PersonalInfo childPI = (PersonalInfo) ((PersonNode) child).getUserObject();

    PersonalInfo ParentPI = (PersonalInfo) getUserObject();
    if (parent != null) ParentPI.remove(childPI);
  }
}

⌨️ 快捷键说明

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