Java JTree 패널을 구현 중입니다. 이 패널은 treelike (컴포지트 목록 - 다른 클래스 목록)의 집합에서 TreeModel 빌드를 보유합니다. 내가 정의한 인터페이스 세트를 기반으로 외부 항아리 구현에서 이러한 데이터 구조를 얻습니다.노드 객체의 상태가 변경 될 때 동적으로 JTree 뷰를 변경하는 방법은 무엇입니까?
트리 노드에는 체크 된 노드와 모든 자식 노드가 "활성화"되어야한다는 체크 박스가 있습니다. 즉, 노드가 나타내는 객체는 데이터를 가져 오는 것과 같이 뭔가를해야합니다 데이터베이스.
트리 노트는 "활성화"하지 않고, 즉 확인란을 선택하지 않고 선택할 수도 있습니다.
그 외에도 프로그램의 다른 부분이 데이터 모델 객체의 활성화 상태를 전환 할 수 있습니다. 따라서 treemodel이 작성하는 데이터 모델이 활성화 상태의 소스입니다. 이것은 동적으로 (un) 체크 박스를 체크함으로써 treeview에 반영되어야합니다.
이제 어떻게 구현할 수 있습니까? 누가 변화해야하는지 청취자가되어야합니까?
이제 노드에있는 모든 클래스가 활성화 필드를 포함하는 추상 클래스에서 확장됩니다. 이것이 진정한 데이터 소스입니다. 이 필드가 변경되면 가입 된 모든 리스너 (EventListener)에 통지해야합니다. 여기에는 확인란이 포함됩니다.
기본 TreeSelectionModel을 기반으로하지만 자식/부모를 검사해야하는지 확인하는 기능이 확장 된 TreeSelectionModel도 있습니다.
제 질문은 아마도 분명하지는 않지만이 복잡한 코드도 마찬가지입니다. 당신이 도울 수 있기를 바랍니다.