JAVA/Java Platform, Standard Edition
[공식 문서] JTree와 트리 구조 데이터를 위한 데이터 모델(TreeModel)
yebin0322
2025. 2. 10. 00:34
반응형
JTree
- Java Swing 라이브러리에서 제공하는 컴포넌트
- 트리 구조의 데이터를 시각적으로 표현하는 데 사용됨
- 계층적 데이터를 나타내는 데 적합
계층적 구조
- 부모-자식 관계를 가진 노드
- 각 노드는 다른 노드를 자식으로 가질 수 있음
- 트리 형태로 시각화됨
TreeModel
- JTree와 관련된 클래스에서 사용되는 데이터 모델을 정의
- TreeModel을 구현할 때, 동일한 부모 아래에서 두 개의 자식 노드가 같은 객체를 반환하면, TreePath 객체가 동일하다고 간주됨
- JTree와 관련된 클래스는 TreePath를 맵에 저장하므로, 동일한 노드가 두 번 요청될 경우 반환 값이 같아야 하며, 이 때 equals 메소드를 사용하여 비교해야 함
Object getRoot()
- 트리의 루트 노드를 반환
- 트리에 노드가 없으면 null을 반환
Object getChild(Object parent, int index)
- 주어진 부모의 자식 노드 중 특정 인덱스에 해당하는 자식 노드 반환
- 유효한 인덱스가 주어졌을 때는 null을 반환하면 안됨
int getChildCount(Object parent)
- 주어진 부모 노드의 자식 수 반환
- 노드가 리프 노드이거나 자식이 없으면 0 반환
boolean isLeaf(Object node)
- 주어진 노드가 리프 노드인지 여부를 반환
- 리프 노드 : 자식이 없는 노드
int getIndexOfCHild(Object parent)
- 특정 자식 노드의 인덱스 반환
- 부모 또는 자식이 null이거나 이 트리 모델에 속하지 않으면 -1 반환
void addTreeModelListener(TreeModelListener l)
- 트리의 변경 사항이 발생했을 때 TreeModelEvent를 수신할 리스너를 추가
void removeTreeModelListener(TreeModelListener l)
- 이전에 추가한 리스너 제거
void valueForPathChanged(TreePath path, Object newValue)
- 사용자가 특정 경로에 있는 노드의 값을 변경했을 때 호출
- 새로운 값이 진정한 새로운 값이라면 모델은 treeNodesChanged 이벤트를 게시해야 함
반응형