JavaTM Platform
Standard Ed. 6

javax.swing.tree
클래스 DefaultMutableTreeNode

java.lang.Object 
  상위를 확장 javax.swing.tree.DefaultMutableTreeNode
모든 구현된 인터페이스:
Serializable , Cloneable , MutableTreeNode , TreeNode
직계의 기존의 서브 클래스:
JTree.DynamicUtilTreeNode


public class DefaultMutableTreeNode
extends Object
implements Cloneable , MutableTreeNode , Serializable

DefaultMutableTreeNode 는, 트리 데이터 구조의 범용 노드입니다. 디폴트의 가변 트리 노드의 사용예는, 「The Java Tutorial」의「How to Use Trees」를 참조해 주세요.

트리 노드는 최대 1 살의 부모와 제로개이상의 아이를 가집니다. DefaultMutableTreeNode 는, 노드의 부모와 아이의 검사라고 변경을 행하기 위한 조작과 그 노드에 의해 구성되는 트리를 검사하는 조작을 제공합니다. 노드의 트리는, 그 노드를 기점으로 하는 부모와 아이에게로의 모든 가능한 링크를 더듬어 도달할 수 있는, 모든 노드로부터 구성됩니다. 부모를 가지지 않는 노드는 그 트리의 루트로, 아이를 가지지 않는 노드는 잎입니다. 트리는 다수의 서브 트리를 가질 수가 있어 각 노드는 그 서브 트리의 루트가 됩니다.

이 클래스는, 트리 또는 서브 트리를 다양한 순서로 효율적으로 더듬는 방법이나, 2 개의 노드간의 패스를 더듬기 위한 방법을 열거합니다. DefaultMutableTreeNode 에는, 사용자 객체에의 참조, 즉 사용자가 독자적으로 정의하는 객체에의 참조도 포함할 수 있습니다. DefaultMutableTreeNodetoString() 를 지정해 그 캐릭터 라인 표현을 요구하면(자), 그 사용자 객체의 캐릭터 라인 표현을 돌려줍니다.

이 클래스는 thread 세이프가 아닙니다. 복수의 thread로 DefaultMutableTreeNode (즉, TreeNode 의 트리)를 사용하는 경우, 사용자 자신이 동기를 실시할 필요가 있습니다. 관례에서는, 트리의 루트 노드로 동기 시킵니다.

DefaultMutableTreeNode 은 MutableTreeNode 인터페이스를 구현해, MutableTreeNode 의 모든 구현에 메소드를 추가할 수 있습니다만, DefaultMutableTreeNode 의 모든 메소드가 MutableTreeNode 의 모든 구현에 적용할 수 있다고는 할 수 없습니다. 제공되는 열거의 일부에서는 특히, 그러한 메소드의 일부를 사용하면(자), DefaultMutableTreeNode 는 DefaultMutableNode 의 인스턴스만을 포함한 경우가 있습니다. TreeNode/MutableTreeNode 메소드는 모두, 어느 구현이 추가되어도 정의된 것처럼 동작합니다.

경고: 이 클래스의 직렬화 된 객체는, 향후의 Swing 릴리스와 호환은 아니게 될 예정입니다. 현재의 직렬화의 지원는, 단기간의 운용이나, 같은 버젼의 Swing 를 실행하는 어플리케이션간의 RMI 에 적절하고 있습니다. JDK Version 1.4 이후, 모든 JavaBeans 의 장기간의 운용 지원는,java.beans 패키지에 추가되고 있습니다. 자세한 것은,XMLEncoder 를 참조해 주세요.

관련 항목:
MutableTreeNode

필드의 개요
protected  boolean allowsChildren
          노드가 아이를 가질 수가 있는 경우는 true 입니다.
protected  Vector children
          복수의 아이의 배열입니다.
static Enumeration <TreeNode > EMPTY_ENUMERATION
          항상 빈 상태(empty)의 열거입니다.
protected  MutableTreeNode parent
          이 노드의 부모입니다.
protected  Object userObject
          옵션의 사용자 객체입니다.
 
생성자 의 개요
DefaultMutableTreeNode ()
          부모나 아이도 가지지 않는 트리 노드를 작성합니다.
DefaultMutableTreeNode (Object  userObject)
          부모나 아이도 가지지 않는 트리 노드를 작성해, 지정된 사용자 객체로 초기화합니다.
DefaultMutableTreeNode (Object  userObject, boolean allowsChildren)
          부모나 아이도 없는 트리 노드를 작성합니다.
 
메소드의 개요
 void add (MutableTreeNode  newChild)
          newChild 를 그 부모로부터 삭제해, 이 노드의 아이 배열의 말미에 추가해, 이 노드의 아이로 합니다.
 Enumeration breadthFirstEnumeration ()
          이 노드를 루트로 하는 서브 트리를 폭우선으로 횡단(traverse) 하는 열거를 생성해 돌려줍니다.
 Enumeration children ()
          이 노드의 아이의 순서 방향 열거를 작성해 돌려줍니다.
 Object clone ()
          오버라이드(override) 되어, 복제를 public 로 합니다.
 Enumeration depthFirstEnumeration ()
          이 노드를 루트로 하는 서브 트리를, 깊이 우선으로 횡단(traverse) 하는 열거를 생성해 돌려줍니다.
 boolean getAllowsChildren ()
          이 노드가 아이를 가지는 것을 허가되고 있는 경우에 true 를 돌려줍니다.
 TreeNode getChildAfter (TreeNode  aChild)
          이 노드의 아이 배열내에서 aChild 의 직후에 오는 아이를 돌려줍니다.
 TreeNode getChildAt (int index)
          이 노드의 아이 배열에 있는, 지정된 인덱스의 아이를 돌려줍니다.
 TreeNode getChildBefore (TreeNode  aChild)
          이 노드의 아이 배열내에서 aChild 의 직전에 오는 아이를 돌려줍니다.
 int getChildCount ()
          이 노드의 아이의 수를 돌려줍니다.
 int getDepth ()
          이 노드를 루트로 하는 트리의 깊이, 즉 이 노드로부터 잎까지의 최장의 거리를 돌려줍니다.
 TreeNode getFirstChild ()
          이 노드의 최초의 아이를 돌려줍니다.
 DefaultMutableTreeNode getFirstLeaf ()
          이 노드의 하위 노드인 최초의 잎, 즉, 이 노드, 또는 그 최초의 아이의 최초의 잎의 어느 쪽인지를 찾아내 돌려줍니다.
 int getIndex (TreeNode  aChild)
          이 노드의 아이 배열에 있는, 지정된 아이의 인덱스를 돌려줍니다.
 TreeNode getLastChild ()
          이 노드의 마지막 아이를 돌려줍니다.
 DefaultMutableTreeNode getLastLeaf ()
          이 노드의 하위 노드인 마지막 잎, 즉, 이 노드, 또는 그 마지막 아이의 마지막 잎의 어느 쪽인지를 찾아내 돌려줍니다.
 int getLeafCount ()
          이 노드의 하위 노드인 잎의 합계수를 돌려줍니다.
 int getLevel ()
          이 노드보다 위의 부분의 레벨수, 즉 루트로부터 이 노드까지의 거리를 돌려줍니다.
 DefaultMutableTreeNode getNextLeaf ()
          이 노드의 뒤의 잎을 돌려줍니다.
 DefaultMutableTreeNode getNextNode ()
          이 노드의 트리의 전순주사로 이 노드의 다음에 있는 노드를 돌려줍니다.
 DefaultMutableTreeNode getNextSibling ()
          부모의 아이 배열에 있는 이 노드의 다음의 형제 위젯를 돌려줍니다.
 TreeNode getParent ()
          이 노드의 부모를 돌려줍니다.
 TreeNode [] getPath ()
          루트로부터 이 노드에 이를 때까지의 패스를 돌려줍니다.
protected  TreeNode [] getPathToRoot (TreeNode  aNode, int depth)
          루트 노드까지를 포함한 노드의 부모를 구축합니다.
 DefaultMutableTreeNode getPreviousLeaf ()
          이 노드의 전의 잎을 돌려줍니다.
 DefaultMutableTreeNode getPreviousNode ()
          이 노드의 트리의 전순주사로 이 노드의 전에 있는 노드를 돌려줍니다.
 DefaultMutableTreeNode getPreviousSibling ()
          부모의 아이 배열에 있는 이 노드의 직전의 형제 위젯를 돌려줍니다.
 TreeNode getRoot ()
          이 노드를 포함하는 트리의 루트를 돌려줍니다.
 TreeNode getSharedAncestor (DefaultMutableTreeNode  aNode)
          이 노드와 aNode 에 가장 가까운 공통의 상위 노드를 돌려줍니다.
 int getSiblingCount ()
          이 노드의 형제 위젯수를 돌려줍니다.
 Object getUserObject ()
          이 노드의 사용자 객체를 돌려줍니다.
 Object [] getUserObjectPath ()
          루트로부터 이 노드에 이르는 사용자 객체 패스를 돌려줍니다.
 void insert (MutableTreeNode  newChild, int childIndex)
          newChild 를 그 부모가 있으면 그 부모로부터 삭제해, 아이의 부모를 이 노드로 설정하고 나서, 아이를 이 노드의 아이 배열의 인덱스 childIndex 에 추가합니다.
 boolean isLeaf ()
          이 노드에 아이가 없는 경우는 true 를 돌려줍니다.
 boolean isNodeAncestor (TreeNode  anotherNode)
          anotherNode 가 이 노드의 상위 노드인 경우, 즉, 이 노드, 이 노드의 부모, 또는 이 노드의 부모의 상위 노드인 경우에 true 를 돌려줍니다.
 boolean isNodeChild (TreeNode  aNode)
          aNode 가 이 노드의 아이인 경우는 true 를 돌려줍니다.
 boolean isNodeDescendant (DefaultMutableTreeNode  anotherNode)
          anotherNode 가 이 노드의 하위 노드인 경우, 즉, 이 노드, 이 노드의 복수의 아이안의 1개, 또는 그 복수의 아이중의 하나의 하위 노드인 경우에 true 를 돌려줍니다.
 boolean isNodeRelated (DefaultMutableTreeNode  aNode)
          aNode 가 이 노드와 같은 트리에 있는 경우에 true 를 돌려줍니다.
 boolean isNodeSibling (TreeNode  anotherNode)
          anotherNode 가 이 노드와 같은 부모를 가지는 형제 위젯인 경우는 true 를 돌려줍니다.
 boolean isRoot ()
          이 노드가 트리의 루트의 경우는 true 를 돌려줍니다.
 Enumeration pathFromAncestorEnumeration (TreeNode  ancestor)
          ancestor 로부터 이 노드까지의 패스를 더듬는 열거를 생성해 돌려줍니다.
 Enumeration postorderEnumeration ()
          이 노드를 루트로 하는 서브 트리를 후순으로 횡단(traverse) 하는 열거를 생성해 돌려줍니다.
 Enumeration preorderEnumeration ()
          이 노드를 루트로 하는 서브 트리를 전순으로 횡단(traverse) 하는 열거를 생성해 돌려줍니다.
 void remove (int childIndex)
          이 노드의 복수의 아이로부터, 지정된 인덱스의 아이를 삭제해, 그 노드의 부모를 null 로 설정합니다.
 void remove (MutableTreeNode  aChild)
          aChild 를 이 노드의 아이 배열로부터 삭제해, 거기에 null 의 부모를 줍니다.
 void removeAllChildren ()
          이 노드의 아이를 모두 삭제해, 그러한 부모를 null 로 설정합니다.
 void removeFromParent ()
          이 노드를 루트로 하는 서브 트리를 트리로부터 삭제해, 이 노드에 null 의 부모를 줍니다.
 void setAllowsChildren (boolean allows)
          이 노드가 아이를 가지는 것을 허가될지 어떨지를 설정합니다.
 void setParent (MutableTreeNode  newParent)
          이 노드의 부모를 newParent 로 설정합니다만, 부모의 아이 배열은 변경하지 않습니다.
 void setUserObject (Object  userObject)
          이 노드의 사용자 객체를 userObject 로 설정합니다.
 String toString ()
          toString() 를 이 노드의 사용자 객체에 보낸 결과를 돌려줍니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait
 

필드의 상세

EMPTY_ENUMERATION

public static final Enumeration <TreeNode > EMPTY_ENUMERATION
항상 빈 상태(empty)의 열거입니다. 이것은, 잎노드의 아이의 열거가 요구되었을 때에 사용됩니다.


parent

protected MutableTreeNode  parent
이 노드의 부모입니다. 이 노드에 부모가 없는 경우는 null 입니다.


children

protected Vector  children
복수의 아이의 배열입니다. 이 노드에 아이가 없는 경우는 null 입니다.


userObject

protected transient Object  userObject
옵션의 사용자 객체입니다.


allowsChildren

protected boolean allowsChildren
노드가 아이를 가질 수가 있는 경우는 true 입니다.

생성자 의 상세

DefaultMutableTreeNode

public DefaultMutableTreeNode()
부모나 아이도 가지지 않는 트리 노드를 작성합니다. 이 트리 노드는 아이를 가질 수가 있습니다.


DefaultMutableTreeNode

public DefaultMutableTreeNode(Object  userObject)
부모나 아이도 가지지 않는 트리 노드를 작성해, 지정된 사용자 객체로 초기화합니다. 이 트리 노드는 아이를 가질 수가 있습니다.

파라미터:
userObject - 사용자가 제공하는, 노드의 데이터를 구성한다 Object

DefaultMutableTreeNode

public DefaultMutableTreeNode(Object  userObject,
                              boolean allowsChildren)
부모나 아이도 없는 트리 노드를 작성합니다. 이것은, 지정된 사용자 객체로 초기화되어 지정되었을 경우에 한해 아이를 가질 수가 있습니다.

파라미터:
userObject - 사용자가 제공하는, 노드의 데이터를 구성한다 Object
allowsChildren - true 의 경우, 노드는 자식(child) 노드를 가지는 것을 허가된다. 그렇지 않은 경우, 항상 잎노드
메소드의 상세

insert

public void insert(MutableTreeNode  newChild,
                   int childIndex)
newChild 를 그 부모가 있으면 그 부모로부터 삭제해, 아이의 부모를 이 노드로 설정하고 나서, 아이를 이 노드의 아이 배열의 인덱스 childIndex 에 추가합니다. newChild 는 null, 및 이 노드의 상위 노드로 할 수 없습니다.

정의:
인터페이스 MutableTreeNode 내의 insert
파라미터:
newChild - 이 노드보다 하위의 부분에 삽입하는 MutableTreeNode
childIndex - 이 노드의 삽입처인, 이 노드의 아이 배열의 인덱스
예외:
ArrayIndexOutOfBoundsException - 다음의 조건이 성립하는 경우: childIndex 가 범위외에 있는 경우
IllegalArgumentException - 다음의 조건이 성립하는 경우: newChild 가 null 의 경우, 또는 이 노드의 상위 노드인 경우
IllegalStateException - 이 노드가 아이를 허가하지 않는 경우
관련 항목:
isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

remove

public void remove(int childIndex)
이 노드의 복수의 아이로부터, 지정된 인덱스의 아이를 삭제해, 그 노드의 부모를 null 로 설정합니다. 삭제하는 자식(child) 노드는,MutableTreeNode 가 아니면 안됩니다.

정의:
인터페이스 MutableTreeNode 내의 remove
파라미터:
childIndex - 이 노드의 아이 배열로 삭제하는 대상의 아이의 인덱스
예외:
ArrayIndexOutOfBoundsException - 다음의 조건이 성립하는 경우: childIndex 가 범위외에 있는 경우

setParent

public void setParent(MutableTreeNode  newParent)
이 노드의 부모를 newParent 로 설정합니다만, 부모의 아이 배열은 변경하지 않습니다. 이 메소드는 아이의 부모를 다시 할당하기 위해서(때문에),insert()remove() 로부터 불려 갑니다. 다른 메소드로부터 메세지로서 보내질 것은 없습니다.

정의:
인터페이스 MutableTreeNode 내의 setParent
파라미터:
newParent - 이 노드의 새로운 부모

getParent

public TreeNode  getParent()
이 노드의 부모를 돌려줍니다. 이 노드에 부모가 없는 경우는 null 를 돌려줍니다.

정의:
인터페이스 TreeNode 내의 getParent
반환값:
이 노드의 친 TreeNode. 이 노드에 부모가 없는 경우는 null

getChildAt

public TreeNode  getChildAt(int index)
이 노드의 아이 배열에 있는, 지정된 인덱스의 아이를 돌려줍니다.

정의:
인터페이스 TreeNode 내의 getChildAt
파라미터:
index - 이 노드의 아이 배열의 인덱스
반환값:
이 노드의 아이 배열에 있는, 지정된 인덱스의 TreeNode
예외:
ArrayIndexOutOfBoundsException - index 가 범위외에 있는 경우

getChildCount

public int getChildCount()
이 노드의 아이의 수를 돌려줍니다.

정의:
인터페이스 TreeNode 내의 getChildCount
반환값:
이 노드의 아이의 수를 나타내는 int 치

getIndex

public int getIndex(TreeNode  aChild)
이 노드의 아이 배열에 있는, 지정된 아이의 인덱스를 돌려줍니다. 지정된 노드가 이 노드의 아이가 아닌 경우는,-1 을 돌려줍니다. 이 메소드는 O(n)의 선형 탐색을 실행합니다. n 는 아이의 수입니다.

정의:
인터페이스 TreeNode 내의 getIndex
파라미터:
aChild - 이 노드의 복수의 아이중에서 검색하는 TreeNode
반환값:
이 노드의 아이 배열내의 노드의 인덱스를 나타내는 int 치. 지정의 노드가 이 노드의 아이가 아닌 경우는 -1
예외:
IllegalArgumentException - aChild 가 null 의 경우

children

public Enumeration  children()
이 노드의 아이의 순서 방향 열거를 작성해 돌려줍니다. 이 노드의 아이 배열을 변경하면(자), 변경전에 작성된 아이의 열거는 모두 무효가 됩니다.

정의:
인터페이스 TreeNode 내의 children
반환값:
이 노드의 아이의 Enumeration

setAllowsChildren

public void setAllowsChildren(boolean allows)
이 노드가 아이를 가지는 것을 허가될지 어떨지를 설정합니다. allows 가 false 의 경우는, 이 노드의 아이는 모두 삭제됩니다.

주:디폴트에서는, 노드는 아이를 허가합니다.

파라미터:
allows - 이 노드가 아이를 가지는 것을 허가되는 경우는 true

getAllowsChildren

public boolean getAllowsChildren()
이 노드가 아이를 가지는 것을 허가되고 있는 경우에 true 를 돌려줍니다.

정의:
인터페이스 TreeNode 내의 getAllowsChildren
반환값:
이 노드가 아이를 허가하고 있는 경우는 true, 그렇지 않은 경우는 false

setUserObject

public void setUserObject(Object  userObject)
이 노드의 사용자 객체를 userObject 로 설정합니다.

정의:
인터페이스 MutableTreeNode 내의 setUserObject
파라미터:
userObject - 이 노드의 사용자 지정의 데이터를 구성한다 Object
관련 항목:
getUserObject() , toString()

getUserObject

public Object  getUserObject()
이 노드의 사용자 객체를 돌려줍니다.

반환값:
사용자에 의해 이 노드에 포함되는 Object
관련 항목:
setUserObject(java.lang.Object) , toString()

removeFromParent

public void removeFromParent()
이 노드를 루트로 하는 서브 트리를 트리로부터 삭제해, 이 노드에 null 의 부모를 줍니다. 이 노드가 그 트리의 루트인 경우는, 처리를 실시하지 않습니다.

정의:
인터페이스 MutableTreeNode 내의 removeFromParent

remove

public void remove(MutableTreeNode  aChild)
aChild 를 이 노드의 아이 배열로부터 삭제해, 거기에 null 의 부모를 줍니다.

정의:
인터페이스 MutableTreeNode 내의 remove
파라미터:
aChild - 삭제하는 이 노드의 아이
예외:
IllegalArgumentException - aChild 가 null 의 경우, 또는 이 노드의 아이가 아닌 경우

removeAllChildren

public void removeAllChildren()
이 노드의 아이를 모두 삭제해, 그러한 부모를 null 로 설정합니다. 이 노드가 아이를 가지지 않는 경우, 이 메소드는 처리를 실시하지 않습니다.


add

public void add(MutableTreeNode  newChild)
newChild 를 그 부모로부터 삭제해, 이 노드의 아이 배열의 말미에 추가해, 이 노드의 아이로 합니다.

파라미터:
newChild - 이 노드의 아이로서 추가하는 노드
예외:
IllegalArgumentException - newChild 가 null 의 경우
IllegalStateException - 이 노드가 아이를 허가하지 않는 경우
관련 항목:
insert(javax.swing.tree.MutableTreeNode, int)

isNodeAncestor

public boolean isNodeAncestor(TreeNode  anotherNode)
anotherNode 가 이 노드의 상위 노드인 경우, 즉, 이 노드, 이 노드의 부모, 또는 이 노드의 부모의 상위 노드인 경우에 true 를 돌려줍니다. 노드는 그것 자신의 상위 노드라고 보여집니다. anotherNode 가 null 의 경우는, 이 메소드는 false 를 돌려줍니다. 이 조작은 최악이어도 O(h)입니다. h 는 루트로부터 이 노드까지의 거리입니다.

파라미터:
anotherNode - 이 노드의 상위 노드일지 어떨지를 조사하는 노드
반환값:
이 노드가 anotherNode 의 하위 노드인 경우는 true
관련 항목:
isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode) , getSharedAncestor(javax.swing.tree.DefaultMutableTreeNode)

isNodeDescendant

public boolean isNodeDescendant(DefaultMutableTreeNode  anotherNode)
anotherNode 가 이 노드의 하위 노드인 경우, 즉, 이 노드, 이 노드의 복수의 아이안의 1개, 또는 그 복수의 아이중의 하나의 하위 노드인 경우에 true 를 돌려줍니다. 노드는 그것 자신의 하위 노드라고 보여집니다. anotherNode 가 null 의 경우는, false 를 돌려줍니다. 이 조작은 최악이어도 O(h)입니다. h 는 루트로부터 anotherNode 까지의 거리입니다.

파라미터:
anotherNode - 이 노드의 하위 노드일지 어떨지를 조사하는 노드
반환값:
이 노드가 anotherNode 의 상위 노드인 경우는 true
관련 항목:
isNodeAncestor(javax.swing.tree.TreeNode) , getSharedAncestor(javax.swing.tree.DefaultMutableTreeNode)

getSharedAncestor

public TreeNode  getSharedAncestor(DefaultMutableTreeNode  aNode)
이 노드와 aNode 에 가장 가까운 공통의 상위 노드를 돌려줍니다. 그러한 상위 노드가 없는 경우, 즉 이 노드와 aNode 가 다른 트리에 있는 경우나,aNode 가 null 의 경우는, null 를 돌려줍니다. 노드는 그것 자신의 상위 노드라고 보여집니다.

파라미터:
aNode - 공통의 상위 노드를 찾아내는 노드
반환값:
이 노드와 aNode 에 가장 가까운 공통의 상위 노드. 없는 경우는 null
관련 항목:
isNodeAncestor(javax.swing.tree.TreeNode) , isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

isNodeRelated

public boolean isNodeRelated(DefaultMutableTreeNode  aNode)
aNode 가 이 노드와 같은 트리에 있는 경우에 true 를 돌려줍니다. aNode 가 null 의 경우는 false 를 돌려줍니다.

반환값:
aNode 가 이 노드와 같은 트리에 있는 경우는 true,aNode 가 null 의 경우는 false
관련 항목:
getSharedAncestor(javax.swing.tree.DefaultMutableTreeNode) , getRoot()

getDepth

public int getDepth()
이 노드를 루트로 하는 트리의 깊이, 즉 이 노드로부터 잎까지의 최장의 거리를 돌려줍니다. 이 노드가 아이를 가지지 않는 경우는 0 을 돌려줍니다. 이 노드를 루트로 하는 트리 전체를 효율적으로 횡단(traverse) 할 필요가 있으므로, 이 조작은 getLevel() 보다 꽤 부하가 커집니다.

반환값:
이 노드를 루트로 하는 트리의 깊이
관련 항목:
getLevel()

getLevel

public int getLevel()
이 노드보다 위의 부분의 레벨수, 즉 루트로부터 이 노드까지의 거리를 돌려줍니다. 이 노드가 루트의 경우는 0 을 돌려줍니다.

반환값:
이 노드보다 위의 부분의 레벨수
관련 항목:
getDepth()

getPath

public TreeNode [] getPath()
루트로부터 이 노드에 이를 때까지의 패스를 돌려줍니다. 패스의 마지막 요소는 이 노드입니다.

반환값:
패스를 나타내는 TreeNode 객체의 배열. 패스의 최초의 요소는 루트, 마지막 요소는 이 노드

getPathToRoot

protected TreeNode [] getPathToRoot(TreeNode  aNode,
                                   int depth)
루트 노드까지를 포함한 노드의 부모를 구축합니다. 다만, 원의 노드는 반환되는 배열내의 마지막 요소입니다. 반환되는 배열의 길이는, 트리내의 노드의 깊이를 지정합니다.

파라미터:
aNode - 패스를 취득하는 TreeNode
depth - 반환되는 배열의 사이즈 지정에 사용하는, (재귀 호출로) 벌써 취득 끝난 루트까지의 스텝수를 나타내는 int 치
반환값:
루트로부터 지정된 노드까지의 패스를 나타낸다 TreeNode 의 배열

getUserObjectPath

public Object [] getUserObjectPath()
루트로부터 이 노드에 이르는 사용자 객체 패스를 돌려줍니다. 패스의 몇개의 TreeNode 가 null 사용자 객체를 가지는 경우, 반환되는 패스는 null 를 포함합니다.


getRoot

public TreeNode  getRoot()
이 노드를 포함하는 트리의 루트를 돌려줍니다. 루트는 null 의 부모를 가지는 상위 노드입니다.

반환값:
이 노드를 포함하는 트리의 루트
관련 항목:
isNodeAncestor(javax.swing.tree.TreeNode)

isRoot

public boolean isRoot()
이 노드가 트리의 루트의 경우는 true 를 돌려줍니다. 루트는, 트리내에서 null 의 부모를 가지는 유일한 노드입니다. 모든 트리는 루트를 1 개만 가집니다.

반환값:
이 노드가 그 트리의 루트의 경우는 true

getNextNode

public DefaultMutableTreeNode  getNextNode()
이 노드의 트리의 전순주사로 이 노드의 다음에 있는 노드를 돌려줍니다. 이 노드가 주사의 마지막 노드인 경우는 null 를 돌려줍니다. 이것은 트리 전체를 횡단(traverse) 하는 방법으로서는 효율적은 아니기 때문에, 대신에 열거를 사용합니다.

반환값:
전순주사로 이 노드의 다음에 있는 노드. 이 노드가 마지막 노드의 경우는 null
관련 항목:
preorderEnumeration()

getPreviousNode

public DefaultMutableTreeNode  getPreviousNode()
이 노드의 트리의 전순주사로 이 노드의 전에 있는 노드를 돌려줍니다. 이 노드가 주사의 최초의 노드 (트리의 루트)인 경우는 null 를 돌려줍니다. 이것은 트리 전체를 횡단(traverse) 하는 방법으로서는 효율적은 아니기 때문에, 대신에 열거를 사용합니다.

반환값:
전순주사로 이 노드의 전에 있는 노드. 이 노드가 최초의 노드의 경우는 null
관련 항목:
preorderEnumeration()

preorderEnumeration

public Enumeration  preorderEnumeration()
이 노드를 루트로 하는 서브 트리를 전순으로 횡단(traverse) 하는 열거를 생성해 돌려줍니다. 열거의 nextElement() 메소드에 의해 반환되는 최초의 노드는, 이 노드입니다.

노드의 삽입, 삭제, 이동으로 트리를 변경하면(자), 변경전에 작성된 임의의 열거는 무효가 됩니다.

반환값:
트리를 전순주사하기 위한 열거
관련 항목:
postorderEnumeration()

postorderEnumeration

public Enumeration  postorderEnumeration()
이 노드를 루트로 하는 서브 트리를 후순으로 횡단(traverse) 하는 열거를 생성해 돌려줍니다. 열거의 nextElement() 메소드에 의해 반환되는 최초의 노드는, 좌단의 잎입니다. 이것은, 깊이 우선 주사와 같습니다.

노드의 삽입, 삭제, 이동으로 트리를 변경하면(자), 변경전에 작성된 임의의 열거는 무효가 됩니다.

반환값:
트리를 후순주사하기 위한 열거
관련 항목:
depthFirstEnumeration() , preorderEnumeration()

breadthFirstEnumeration

public Enumeration  breadthFirstEnumeration()
이 노드를 루트로 하는 서브 트리를 폭우선으로 횡단(traverse) 하는 열거를 생성해 돌려줍니다. 열거의 nextElement() 메소드에 의해 반환되는 최초의 노드는, 이 노드입니다.

노드의 삽입, 삭제, 이동으로 트리를 변경하면(자), 변경전에 작성된 임의의 열거는 무효가 됩니다.

반환값:
트리를 폭우선 주사하기 위한 열거
관련 항목:
depthFirstEnumeration()

depthFirstEnumeration

public Enumeration  depthFirstEnumeration()
이 노드를 루트로 하는 서브 트리를, 깊이 우선으로 횡단(traverse) 하는 열거를 생성해 돌려줍니다. 열거의 nextElement() 메소드에 의해 반환되는 최초의 노드는, 좌단의 잎입니다. 이것은, 포스트오더 탐색과 같습니다.

노드의 삽입, 삭제, 이동으로 트리를 변경하면(자), 변경전에 작성된 임의의 열거는 무효가 됩니다.

반환값:
트리를 깊이 우선 주사하기 위한 열거
관련 항목:
breadthFirstEnumeration() , postorderEnumeration()

pathFromAncestorEnumeration

public Enumeration  pathFromAncestorEnumeration(TreeNode  ancestor)
ancestor 로부터 이 노드까지의 패스를 더듬는 열거를 생성해 돌려줍니다. 열거의 nextElement() 메소드는, 최초로 ancestor, 다음에 이 노드의 상위 노드인 ancestor 의 아이와 같이 차례차례 돌려주어 가 마지막에 이 노드를 돌려줍니다. 열거의 생성은 O(m)입니다. m 는 이 노드와 ancestor 의 사이 (이 노드와 ancestor 를 포함한다)의 노드수입니다. 각 nextElement() 메세지는 O(1)입니다.

노드의 삽입, 삭제, 이동으로 트리를 변경하면(자), 변경전에 작성된 임의의 열거는 무효가 됩니다.

반환값:
이 노드의 상위 노드로부터 지금까지의 패스를 더듬기 위한 열거
예외:
IllegalArgumentException - ancestor 가 이 노드의 상위 노드가 아닌 경우
관련 항목:
isNodeAncestor(javax.swing.tree.TreeNode) , isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

isNodeChild

public boolean isNodeChild(TreeNode  aNode)
aNode 가 이 노드의 아이인 경우는 true 를 돌려줍니다. aNode 가 null 의 경우, 이 메소드는 false 를 돌려줍니다.

반환값:
aNode 가 이 노드의 아이인 경우는 true. aNode 가 null 의 경우는 false

getFirstChild

public TreeNode  getFirstChild()
이 노드의 최초의 아이를 돌려줍니다. 이 노드에 아이가 없는 경우는, NoSuchElementException 를 throw 합니다.

반환값:
이 노드의 최초의 아이
예외:
NoSuchElementException - 이 노드에 아이가 없는 경우

getLastChild

public TreeNode  getLastChild()
이 노드의 마지막 아이를 돌려줍니다. 이 노드에 아이가 없는 경우는, NoSuchElementException 를 throw 합니다.

반환값:
이 노드의 마지막 아이
예외:
NoSuchElementException - 이 노드에 아이가 없는 경우

getChildAfter

public TreeNode  getChildAfter(TreeNode  aChild)
이 노드의 아이 배열내에서 aChild 의 직후에 오는 아이를 돌려줍니다. 덧붙여aChild 는 이 노드의 아이일 필요가 있습니다. aChild 가 마지막 아이의 경우는, null 를 돌려줍니다. 이 메소드는, 이 노드의 아이의 O(n)의 선형 탐색을 실행해 aChild 를 찾습니다. n 는 아이의 수입니다. 아이의 배열 전체를 횡단(traverse) 하려면 , 대신에 열거를 사용합니다.

반환값:
aChild 의 직후에 오는 이 노드의 아이
예외:
IllegalArgumentException - aChild 가 null 의 경우, 또는 이 노드의 아이가 아닌 경우
관련 항목:
children

getChildBefore

public TreeNode  getChildBefore(TreeNode  aChild)
이 노드의 아이 배열내에서 aChild 의 직전에 오는 아이를 돌려줍니다. 덧붙여aChild 는 이 노드의 아이일 필요가 있습니다. aChild 가 최초의 아이의 경우, null 를 돌려줍니다. 이 메소드는, 이 노드의 아이의 O(n)의 선형 탐색을 실행해 aChild 를 찾습니다. n 는 아이의 수입니다.

반환값:
aChild 의 직전에 오는 이 노드의 아이
예외:
IllegalArgumentException - aChild 가 null 의 경우, 또는 이 노드의 아이가 아닌 경우

isNodeSibling

public boolean isNodeSibling(TreeNode  anotherNode)
anotherNode 가 이 노드와 같은 부모를 가지는 형제 위젯인 경우는 true 를 돌려줍니다. 노드는 그것 자신의 형제 위젯입니다. anotherNode 가 null 의 경우는, false 를 돌려줍니다.

파라미터:
anotherNode - 이 노드의 형제 위젯일지 어떨지를 조사하는 노드
반환값:
anotherNode 가 이 노드의 형제 위젯의 경우는 true

getSiblingCount

public int getSiblingCount()
이 노드의 형제 위젯수를 돌려줍니다. 노드는 그것 자신의 형제 위젯입니다. 부모도 형제 위젯도 가지고 있지 않은 경우, 이 메소드는 1 을 돌려줍니다.

반환값:
이 노드의 형제 위젯수

getNextSibling

public DefaultMutableTreeNode  getNextSibling()
부모의 아이 배열에 있는 이 노드의 다음의 형제 위젯를 돌려줍니다. 이 노드에 부모가 없는 경우나, 이 노드가 부모의 마지막 아이인 경우는, null 를 돌려줍니다. 이 메소드는 O(n)의 선형 탐색을 실행합니다. n 는 아이의 수입니다. 배열 전체를 횡단(traverse) 하려면 , 대신에 부모의 아이의 열거를 사용합니다.

반환값:
이 노드의 직후에 있는, 이 노드의 형제 위젯
관련 항목:
children

getPreviousSibling

public DefaultMutableTreeNode  getPreviousSibling()
부모의 아이 배열에 있는 이 노드의 직전의 형제 위젯를 돌려줍니다. 이 노드에 부모가 없는 경우나, 이 노드가 부모의 최초의 아이인 경우는, null 를 돌려줍니다. 이 메소드는 O(n)의 선형 탐색을 실행합니다. n 는 아이의 수입니다.

반환값:
이 노드의 직전에 있는, 이 노드의 형제 위젯

isLeaf

public boolean isLeaf()
이 노드에 아이가 없는 경우는 true 를 돌려줍니다. 아이가 없는 노드와 아이를 인기가 있지 않은 노드를 분별하려면 (예를 들어, 파일을 빈 상태(empty)의 디렉토리와 구별하려면 ), 이 메소드를 getAllowsChildren 와 조합해 사용합니다.

정의:
인터페이스 TreeNode 내의 isLeaf
반환값:
이 노드에 아이가 없는 경우는 true
관련 항목:
getAllowsChildren()

getFirstLeaf

public DefaultMutableTreeNode  getFirstLeaf()
이 노드의 하위 노드인 최초의 잎, 즉, 이 노드, 또는 그 최초의 아이의 최초의 잎의 어느 쪽인지를 찾아내 돌려줍니다. 이 노드가 잎의 경우에는 그것을 돌려줍니다.

반환값:
이 노드를 루트로 하는 서브 트리내의 최초의 잎
관련 항목:
isLeaf() , isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

getLastLeaf

public DefaultMutableTreeNode  getLastLeaf()
이 노드의 하위 노드인 마지막 잎, 즉, 이 노드, 또는 그 마지막 아이의 마지막 잎의 어느 쪽인지를 찾아내 돌려줍니다. 이 노드가 잎의 경우에는 그것을 돌려줍니다.

반환값:
이 노드를 루트로 하는 서브 트리내의 마지막 잎
관련 항목:
isLeaf() , isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

getNextLeaf

public DefaultMutableTreeNode  getNextLeaf()
이 노드의 뒤의 잎을 돌려줍니다. 이 노드가 트리내의 마지막 잎인 경우는 null 를 돌려줍니다.

MutableNode 인터페이스의 이 구현에서는, 이 조작은 그다지 효율적이 아닙니다. 다음의 노드를 판정하려면 , 이 메소드는 최초로 현재의 노드를 찾아내기 위해서(때문에) 부모의 아이 리스트로 선형 탐색을 실행합니다.

이 구현은, 조작을 기존의 위치로부터 짧은 traversal를 실시하는데 적합한 것으로 합니다. 트리내의 모든 잎을 횡단(traverse) 하려면 ,depthFirstEnumeration 를 사용해 트리내의 노드를 열거해,isLeaf 를 각 노드에 사용해 어떤 것이 잎인지를 판정합니다.

반환값:
이 노드의 다음의 잎
관련 항목:
depthFirstEnumeration() , isLeaf()

getPreviousLeaf

public DefaultMutableTreeNode  getPreviousLeaf()
이 노드의 전의 잎을 돌려줍니다. 이 노드가 트리내의 최초의 잎인 경우는 null 를 돌려줍니다.

MutableNode 인터페이스의 이 구현에서는, 이 조작은 그다지 효율적이 아닙니다. 직전의 노드를 판정하려면 , 이 메소드는 최초로 현재의 노드를 찾아내기 위해서(때문에) 부모의 아이 리스트로 선형 탐색을 실행합니다.

이 구현은, 조작을 기존의 위치로부터 짧은 traversal를 실시하는데 적합한 것으로 합니다. 트리내의 모든 잎을 횡단(traverse) 하려면 ,depthFirstEnumeration 를 사용해 트리내의 노드를 열거해,isLeaf 를 각 노드에 사용해 어떤 것이 잎인지를 판정합니다.

반환값:
이 노드의 전의 잎
관련 항목:
depthFirstEnumeration() , isLeaf()

getLeafCount

public int getLeafCount()
이 노드의 하위 노드인 잎의 합계수를 돌려줍니다. 이 노드가 잎인 경우는,1 을 돌려줍니다. 이 메소드는 O(n)입니다. n 는 이 노드의 하위 노드의 수입니다.

반환값:
이 노드보다 아래의 부분에 있는 잎의 수
관련 항목:
isNodeAncestor(javax.swing.tree.TreeNode)

toString

public String  toString()
toString() 를 이 노드의 사용자 객체에 보낸 결과를 돌려줍니다. 이 노드에 사용자 객체가 없는 경우는 null 를 돌려줍니다.

오버라이드(override):
클래스 Object 내의 toString
반환값:
이 객체의 캐릭터 라인 표현
관련 항목:
getUserObject()

clone

public Object  clone()
오버라이드(override) 되어, 복제를 public 로 합니다. 이 노드의 shallow 복사를 돌려줍니다. 즉, 새로운 노드는 부모나 아이를 가지지 않고, 같은 사용자 객체가 있으면 그것을 참조합니다.

오버라이드(override):
클래스 Object 내의 clone
반환값:
이 노드의 카피
관련 항목:
Cloneable

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.