TreeSelectionModel

TreeSelectionModel (트리 선택 상태)

TreeSelectionModel은 트리 컴포넌트의 선택 영역에 대한 현재 상태를 나타내는 인터페이스예요. 트리 선택 모델 사용에 대한 정보와 예시는 The Java Tutorial의 "How to Use Trees"에서 확인할 수 있어요.

출처: Java API Reference

본문

트리 선택의 상태는 TreePath 집합과 선택적으로 정수 집합으로 특징지어져요. TreePath에서 정수로의 매핑은 RowMapper 인스턴스를 통해 수행돼요. TreeSelectionModel이 올바르게 작동하는 데 RowMapper가 필요하진 않지만, RowMapper가 없으면 getSelectionRowsnull을 반환해요.

TreeSelectionModel은 하나의 경로만 허용하도록(SINGLE_TREE_SELECTION), 여러 개의 연속 경로(CONTIGUOUS_TREE_SELECTION), 또는 여러 개의 비연속 경로(DISCONTIGUOUS_TREE_SELECTION)만 허용하도록 구성할 수 있어요. RowMapperTreePath이 연속인지 확인하는 데 사용돼요. RowMapper가 없으면 CONTIGUOUS_TREE_SELECTIONDISCONTIGUOUS_TREE_SELECTION은 동일하게 동작해요, 즉 TreeSelectionModel에 임의 개수의 경로를 포함할 수 있어요.

CONTIGUOUS_TREE_SELECTION 선택 모델에서는 경로가 변경될 때마다(setSelectionPath, addSelectionPath 등) TreePath이 연속인지 다시 확인돼요. resetRowSelection을 호출해 TreePath 검사를 강제할 수도 있어요.

비연속 TreePath 집합을 연속 집합으로 매핑하는 방법은 이 인터페이스 구현자에게 특정 정책을 적용하도록 맡겨요. 구현은 선택 영역에 추가되는 중복 TreePath을 결합해야 해요. 예를 들어 다음 코드는

TreePath[] paths = new TreePath[] { treePath, treePath };
treeSelectionModel.setSelectionPaths(paths);

treePath 하나만 선택돼야 하고 두 번 선택되면 안 돼요.

알려진 구현 클래스는 DefaultTreeSelectionModel, JTree.EmptySelectionModel이에요.

더 알아보기 (Learn more)

Java 공식 API