JavaTM Platform
Standard Ed. 6

javax.swing.tree
클래스 DefaultTreeModel

java.lang.Object 
  상위를 확장 javax.swing.tree.DefaultTreeModel
모든 구현된 인터페이스:
Serializable , TreeModel


public class DefaultTreeModel
extends Object
implements Serializable , TreeModel

TreeNodes 를 사용하는 단순한 트리 데이터 모델입니다. DefaultTreeModel 의 상세 및 사용예는, 「The Java Tutorial」의「How to Use Trees」를 참조해 주세요.

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


필드의 개요
protected  boolean asksAllowsChildren
          노드가 잎노드인가 어떤가를 isLeaf 메소드가 판단하는 방법을 결정합니다.
protected  EventListenerList listenerList
          청취자입니다.
protected  TreeNode root
          트리의 루트입니다.
 
생성자 의 개요
DefaultTreeModel (TreeNode  root)
          어느 노드에서도 아이를 인기가 있는 트리를 작성합니다.
DefaultTreeModel (TreeNode  root, boolean asksAllowsChildren)
          어느 노드에서도 아이를 인기가 있을지 어떨지, 특정의 노드만이 아이를 인기가 있을지 어떨지를 지정하는 트리를 작성합니다.
 
메소드의 개요
 void addTreeModelListener (TreeModelListener  l)
          트리가 변경된 뒤에 송신된 TreeModelEvent 의 청취자를 추가합니다.
 boolean asksAllowsChildren ()
          잎노드의 판별 방법을 통지합니다.
protected  void fireTreeNodesChanged (Object  source, Object [] path, int[] childIndices, Object [] children)
          통지의 전달 대상을, 지정된 이벤트형으로 등록한 모든 청취자에게 통지합니다.
protected  void fireTreeNodesInserted (Object  source, Object [] path, int[] childIndices, Object [] children)
          통지의 전달 대상을, 지정된 이벤트형으로 등록한 모든 청취자에게 통지합니다.
protected  void fireTreeNodesRemoved (Object  source, Object [] path, int[] childIndices, Object [] children)
          통지의 전달 대상을, 지정된 이벤트형으로 등록한 모든 청취자에게 통지합니다.
protected  void fireTreeStructureChanged (Object  source, Object [] path, int[] childIndices, Object [] children)
          통지의 전달 대상을, 지정된 이벤트형으로 등록한 모든 청취자에게 통지합니다.
 Object getChild (Object  parent, int index)
          부모가 가지는 아이 배열의, 인덱스 index 에 있는 parent 의 아이를 돌려줍니다.
 int getChildCount (Object  parent)
          parent 의 아이의 수를 돌려줍니다.
 int getIndexOfChild (Object  parent, Object  child)
          부모의 아이의 인덱스를 돌려줍니다.
<T extends EventListener >
T[]
getListeners (Class <T> listenerType)
          이 모델에 FooListener 로서 현재 등록되어 모든 객체의 배열을 돌려줍니다.
 TreeNode [] getPathToRoot (TreeNode  aNode)
          루트 노드까지를 포함한 노드의 부모를 구축합니다.
protected  TreeNode [] getPathToRoot (TreeNode  aNode, int depth)
          루트 노드까지를 포함한 노드의 부모를 구축합니다.
 Object getRoot ()
          트리의 루트를 돌려줍니다.
 TreeModelListener [] getTreeModelListeners ()
          이 모델에 등록된, 모든 트리 모델 청취자로부터 되는 배열을 돌려줍니다.
 void insertNodeInto (MutableTreeNode  newChild, MutableTreeNode  parent, int index)
          이 메소드를 호출해, 부모의 아이들의 위치 인덱스에 newChild 를 삽입합니다.
 boolean isLeaf (Object  node)
          지정의 노드가 잎노드인가 어떤가를 돌려줍니다.
 void nodeChanged (TreeNode  node)
          사용자가 트리내의 노드의 표현 방법을 변경한 후에, 이 메소드를 호출합니다.
 void nodesChanged (TreeNode  node, int[] childIndices)
          childIndicies 로 식별되는 아이를 트리내에서 표현하는 방법을 사용자가 변경한 후에, 이 메소드를 호출합니다.
 void nodeStructureChanged (TreeNode  node)
          노드의 아이, 그 아이의 아이, 등과 같이 사용자가 노드의 자손을 전체적으로 변경했을 경우에, 이 메소드를 호출합니다.
 void nodesWereInserted (TreeNode  node, int[] childIndices)
          사용자가 몇개의 TreeNode 를 노드에 삽입한 후에 이 메소드를 호출합니다.
 void nodesWereRemoved (TreeNode  node, int[] childIndices, Object [] removedChildren)
          사용자가 몇개의 TreeNode 를 노드로부터 삭제한 후에 이 메소드를 호출합니다.
 void reload ()
          사용자가 이 모델의 의존하는 TreeNode 를 변경했을 경우, 이 메소드를 호출합니다.
 void reload (TreeNode  node)
          사용자가 이 모델의 의존하는 TreeNode 를 변경했을 경우, 이 메소드를 호출합니다.
 void removeNodeFromParent (MutableTreeNode  node)
          이 메소드를 메세지로서 보내, 노드를 그 부모로부터 삭제합니다.
 void removeTreeModelListener (TreeModelListener  l)
          그때까지 addTreeModelListener() 로 추가되고 있던 청취자를 삭제합니다.
 void setAsksAllowsChildren (boolean newValue)
          TreeNode 에 getAllowsChildren() 또는 isLeaf()로 문의하는 것으로, 잎인가 어떤가의 판정을 할까 하지 않는가를 설정합니다.
 void setRoot (TreeNode  root)
          루트를 root 로 설정합니다.
 void valueForPathChanged (TreePath  path, Object  newValue)
          패스로 식별되는 TreeNode 의 사용자 객체를 설정해, 변경 끝난 노드를 보냅니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

root

protected TreeNode  root
트리의 루트입니다.


listenerList

protected EventListenerList  listenerList
청취자입니다.


asksAllowsChildren

protected boolean asksAllowsChildren
노드가 잎노드인가 어떤가를 isLeaf 메소드가 판단하는 방법을 결정합니다. true 의 경우, 노드가 아이를 허가하지 않으면 잎노드입니다. 아이를 허가하는 경우는, 아이가 존재하지 않아도 잎노드가 아닙니다. 이것으로, 예를 들어 파일 시스템의 「폴더 노드」와「파일 노드」를 구별할 수 있습니다.

이 값이 false 의 경우는, 아이를 가지지 않는 노드는 잎노드로, 어느 노드에서도 아이를 가질 수가 있습니다.

관련 항목:
TreeNode.getAllowsChildren() , TreeModel.isLeaf(java.lang.Object) , setAsksAllowsChildren(boolean)
생성자 의 상세

DefaultTreeModel

public DefaultTreeModel(TreeNode  root)
어느 노드에서도 아이를 인기가 있는 트리를 작성합니다.

파라미터:
root - 트리의 루트인 TreeNode 객체
관련 항목:
DefaultTreeModel(TreeNode, boolean)

DefaultTreeModel

public DefaultTreeModel(TreeNode  root,
                        boolean asksAllowsChildren)
어느 노드에서도 아이를 인기가 있을지 어떨지, 특정의 노드만이 아이를 인기가 있을지 어떨지를 지정하는 트리를 작성합니다.

파라미터:
root - 트리의 루트인 TreeNode 객체
asksAllowsChildren - boolean 형. 어느 노드에서도 아이를 인기가 있는 경우는 false, 각 노드가 아이도 비칠지 어떨지 확인하도록(듯이) 요구되는 경우는 true
관련 항목:
asksAllowsChildren
메소드의 상세

setAsksAllowsChildren

public void setAsksAllowsChildren(boolean newValue)
TreeNode 에 getAllowsChildren() 또는 isLeaf()로 문의하는 것으로, 잎인가 어떤가의 판정을 할까 하지 않는가를 설정합니다. newvalue 가 true 의 경우는, getAllowsChildren()가 메세지로서 보내집니다. 그렇지 않은 경우는, isLeaf()가 메세지로서 보내집니다.


asksAllowsChildren

public boolean asksAllowsChildren()
잎노드의 판별 방법을 통지합니다.

반환값:
자를 허가하지 않는 노드만이 잎노드인 경우는 true, 아이를 가지지 않는 노드 (아이는 허가되고 있어도)가 잎노드인 경우는 false
관련 항목:
asksAllowsChildren

setRoot

public void setRoot(TreeNode  root)
루트를 root 로 설정합니다. null 의 root 는, 트리에는 아무것도 표시되지 않고, 한편 적정인 것을 의미합니다.


getRoot

public Object  getRoot()
트리의 루트를 돌려줍니다. 트리에 노드가 없는 경우만, null 를 돌려줍니다.

정의:
인터페이스 TreeModel 내의 getRoot
반환값:
트리의 루트

getIndexOfChild

public int getIndexOfChild(Object  parent,
                           Object  child)
부모의 아이의 인덱스를 돌려줍니다. 부모나 아이의 어느 쪽인지가 null 의 경우는,-1 을 돌려줍니다.

정의:
인터페이스 TreeModel 내의 getIndexOfChild
파라미터:
parent - 이 데이터 소스로부터 취득된, 트리내의 노드
child - 대상이 되는 노드
반환값:
부모의 아이의 인덱스. 부모 또는 아이가 null 의 경우는 -1

getChild

public Object  getChild(Object  parent,
                       int index)
부모가 가지는 아이 배열의, 인덱스 index 에 있는 parent 의 아이를 돌려줍니다. parent 는, 이 데이터 소스로부터 그때까지 취득된 노드가 아니면 안됩니다. indexparent 의 유효한 인덱스 (즉,index >= 0 && index < getChildCount(parent))인 경우는, null 를 돌려주지 않습니다.

정의:
인터페이스 TreeModel 내의 getChild
파라미터:
parent - 이 데이터 소스로부터 취득된, 트리내의 노드
반환값:
인덱스 index 에 있는 parent 의 아이

getChildCount

public int getChildCount(Object  parent)
parent 의 아이의 수를 돌려줍니다. 노드가 잎의 경우나, 노드가 아이를 가지지 않는 경우는, 0 을 돌려줍니다. parent 는, 이 데이터 소스로부터 그때까지 취득된 노드가 아니면 안됩니다.

정의:
인터페이스 TreeModel 내의 getChildCount
파라미터:
parent - 이 데이터 소스로부터 취득된, 트리내의 노드
반환값:
노드 parent 의 아이의 수

isLeaf

public boolean isLeaf(Object  node)
지정의 노드가 잎노드인가 어떤가를 돌려줍니다. 판정의 실행 방법은,askAllowsChildren 의 설정에 의존합니다.

정의:
인터페이스 TreeModel 내의 isLeaf
파라미터:
node - 체크 대상의 노드
반환값:
노드가 잎노드의 경우는 true
관련 항목:
asksAllowsChildren , TreeModel.isLeaf(java.lang.Object)

reload

public void reload()
사용자가 이 모델의 의존하는 TreeNode 를 변경했을 경우, 이 메소드를 호출합니다. 모델은, 그것 자신이 변경이 끝난 상태인 것을, 그 청취자의 모두에게 통지합니다.


valueForPathChanged

public void valueForPathChanged(TreePath  path,
                                Object  newValue)
패스로 식별되는 TreeNode 의 사용자 객체를 설정해, 변경 끝난 노드를 보냅니다. TreeModel 내의 커스텀 사용자 객체를 사용하면(자), 이것을 서브 클래스화해, 변경이 끝난 노드의 사용자 객체를 의미가 있는 내용으로 설정할 필요가 나옵니다.

정의:
인터페이스 TreeModel 내의 valueForPathChanged
파라미터:
path - 사용자가 변경한 노드에의 패스
newValue - TreeCellEditor 로부터의 새로운 값

insertNodeInto

public void insertNodeInto(MutableTreeNode  newChild,
                           MutableTreeNode  parent,
                           int index)
이 메소드를 호출해, 부모의 아이들의 위치 인덱스에 newChild 를 삽입합니다. 그리고, nodesWereInserted 를 메세지로서 보내, 적절한 이벤트를 생성합니다. 적절한 이벤트를 생성하므로, 아이를 추가하기 위한 바람직한 방법입니다.


removeNodeFromParent

public void removeNodeFromParent(MutableTreeNode  node)
이 메소드를 메세지로서 보내, 노드를 그 부모로부터 삭제합니다. 그리고, nodesWereRemoved 를 메세지로서 보내, 적절한 이벤트를 생성합니다. 이벤트 생성을 사용자를 위해서(때문에) 처리하므로, 노드를 삭제하기 위한 바람직한 방법입니다.


nodeChanged

public void nodeChanged(TreeNode  node)
사용자가 트리내의 노드의 표현 방법을 변경한 후에, 이 메소드를 호출합니다.


reload

public void reload(TreeNode  node)
사용자가 이 모델의 의존하는 TreeNode 를 변경했을 경우, 이 메소드를 호출합니다. 모델은, 지정의 노드보다 아래의 부분에서 변경된 것을, 그 모든 청취자에게 통지합니다.

파라미터:
node - 특정의 노드. 모델은 이 노드보다 아래의 부분에서 변경되었다

nodesWereInserted

public void nodesWereInserted(TreeNode  node,
                              int[] childIndices)
사용자가 몇개의 TreeNode 를 노드에 삽입한 후에 이 메소드를 호출합니다. childIndices 는 새로운 요소의 인덱스로, 승순으로 소트 될 필요가 있습니다.


nodesWereRemoved

public void nodesWereRemoved(TreeNode  node,
                             int[] childIndices,
                             Object [] removedChildren)
사용자가 몇개의 TreeNode 를 노드로부터 삭제한 후에 이 메소드를 호출합니다. childIndices 는 삭제된 요소의 인덱스로, 승순으로 소트 될 필요가 있습니다. 그리고, removedChildren 는, 삭제된 아이 객체의 배열이 됩니다.


nodesChanged

public void nodesChanged(TreeNode  node,
                         int[] childIndices)
childIndicies 로 식별되는 아이를 트리내에서 표현하는 방법을 사용자가 변경한 후에, 이 메소드를 호출합니다.


nodeStructureChanged

public void nodeStructureChanged(TreeNode  node)
노드의 아이, 그 아이의 아이, 등과 같이 사용자가 노드의 자손을 전체적으로 변경했을 경우에, 이 메소드를 호출합니다. 이 메소드는, treeStructureChanged 이벤트를 보냅니다.


getPathToRoot

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

파라미터:
aNode - 패스를 취득하는 TreeNode

getPathToRoot

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

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

addTreeModelListener

public void addTreeModelListener(TreeModelListener  l)
트리가 변경된 뒤에 송신된 TreeModelEvent 의 청취자를 추가합니다.

정의:
인터페이스 TreeModel 내의 addTreeModelListener
파라미터:
l - 추가하는 청취자
관련 항목:
removeTreeModelListener(javax.swing.event.TreeModelListener)

removeTreeModelListener

public void removeTreeModelListener(TreeModelListener  l)
그때까지 addTreeModelListener() 로 추가되고 있던 청취자를 삭제합니다.

정의:
인터페이스 TreeModel 내의 removeTreeModelListener
파라미터:
l - 삭제하는 청취자
관련 항목:
addTreeModelListener(javax.swing.event.TreeModelListener)

getTreeModelListeners

public TreeModelListener [] getTreeModelListeners()
이 모델에 등록된, 모든 트리 모델 청취자로부터 되는 배열을 돌려줍니다.

반환값:
이 모델의 TreeModelListener 전부. 트리 모델 청취자가 현재 등록되지 않은 경우는 빈 상태(empty)의 배열
도입된 버젼:
1.4
관련 항목:
addTreeModelListener(javax.swing.event.TreeModelListener) , removeTreeModelListener(javax.swing.event.TreeModelListener)

fireTreeNodesChanged

protected void fireTreeNodesChanged(Object  source,
                                    Object [] path,
                                    int[] childIndices,
                                    Object [] children)
통지의 전달 대상을, 지정된 이벤트형으로 등록한 모든 청취자에게 통지합니다. 이벤트 인스턴스는, fire 메소드에게 건네지는 파라미터를 사용해 간단하게 생성됩니다.

파라미터:
source - 변경되는 노드
path - 루트 노드에의 패스
childIndices - 변경된 요소의 인덱스
children - 변경된 요소
관련 항목:
EventListenerList

fireTreeNodesInserted

protected void fireTreeNodesInserted(Object  source,
                                     Object [] path,
                                     int[] childIndices,
                                     Object [] children)
통지의 전달 대상을, 지정된 이벤트형으로 등록한 모든 청취자에게 통지합니다. 이벤트 인스턴스는, fire 메소드에게 건네지는 파라미터를 사용해 간단하게 생성됩니다.

파라미터:
source - 새로운 요소가 삽입되는 노드
path - 루트 노드에의 패스
childIndices - 새로운 요소의 인덱스
children - 신규 요소
관련 항목:
EventListenerList

fireTreeNodesRemoved

protected void fireTreeNodesRemoved(Object  source,
                                    Object [] path,
                                    int[] childIndices,
                                    Object [] children)
통지의 전달 대상을, 지정된 이벤트형으로 등록한 모든 청취자에게 통지합니다. 이벤트 인스턴스는, fire 메소드에게 건네지는 파라미터를 사용해 간단하게 생성됩니다.

파라미터:
source - 요소가 삭제되는 노드
path - 루트 노드에의 패스
childIndices - 삭제된 요소의 인덱스
children - 삭제된 요소
관련 항목:
EventListenerList

fireTreeStructureChanged

protected void fireTreeStructureChanged(Object  source,
                                        Object [] path,
                                        int[] childIndices,
                                        Object [] children)
통지의 전달 대상을, 지정된 이벤트형으로 등록한 모든 청취자에게 통지합니다. 이벤트 인스턴스는, fire 메소드에게 건네지는 파라미터를 사용해 간단하게 생성됩니다.

파라미터:
source - 트리 모델이 변경된 노드
path - 루트 노드에의 패스
childIndices - 영향을 받는 요소의 인덱스
children - 영향을 받는 요소
관련 항목:
EventListenerList

getListeners

public <T extends EventListener > T[] getListeners(Class <T> listenerType)
이 모델에 FooListener 로서 현재 등록되어 모든 객체의 배열을 돌려줍니다. FooListener 는,addFooListener 메소드를 사용해 등록합니다.

FooListener.class 라고 하는 클래스 리터럴을 사용해,listenerType 인수를 지정할 수 있습니다. 예를 들어 이하의 코드를 사용해,DefaultTreeModel m 를, 그 트리 모델 청취자에게 조회할 수 있습니다.

TreeModelListener[] tmls = (TreeModelListener[])(m.getListeners(TreeModelListener.class));
이러한 청취자가 없는 경우는 빈 상태(empty)의 배열을 돌려줍니다.

파라미터:
listenerType - 요구되는 청취자의 형태. 이 파라미터는, java.util.EventListener 의 하위 인터페이스를 지정한다
반환값:
이 컴퍼넌트에 FooListener 로서 등록되어 모든 객체의 배열. 이 컴퍼넌트상의 FooListener. 그러한 청취자가 추가되어 있지 않은 경우는 빈 상태(empty)의 배열
예외:
ClassCastException - listenerTypejava.util.EventListener 를 구현하는 클래스 또는 인터페이스를 지정하지 않는 경우
도입된 버젼:
1.3
관련 항목:
getTreeModelListeners()

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 도 참조해 주세요.