반응형
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 이벤트를 게시해야 함
반응형
'JAVA > Java Platform, Standard Edition' 카테고리의 다른 글
[공식 문서] 자바 Timer 클래스 완벽 가이드 : 백그라운드 작업 예약과 반복 실행 (0) | 2025.02.10 |
---|---|
[공식 문서] 멀티스레딩 구현을 위한 기본 인터페이스(Runnable) (0) | 2025.02.10 |
[공식 문서] Swing을 통한 GUI 어플리케이션 개발 : javax.swing 패키지 (2) | 2025.02.03 |
[공식 문서] Swing을 통한 GUI 어플리케이션 개발 : java.awt 패키지 (0) | 2025.02.03 |
Class String (0) | 2025.01.21 |