jtree 예제

이 문서에서는 JTree작업에 대해 설명하고 몇 가지 예제를 보여 드리겠습니다. 응용 프로그램은 튜토리얼 리더 리처드 스탠포드에서 제공하는 예를 기반으로합니다. 나머지 클래스는 마지막 예제의 클래스와 동일합니다. 루트 노드는 계층 구조에서 최상위입니다. 그러나 경우에 따라 루트 노드표시가 필요하지 않을 수 있습니다. 예를 들어` 루트 텍스트와 함께 표시 된 루트 노드를 사용 했습니다. 이것은 매우 유용하지 않습니다. 그래서, 우리가 그것을 숨기고 싶다면? 이는 간단한 API 호출을 통해 가능합니다: 트리의 모델을 명시적으로 만들면 코드는 트리의 모델이 DefaultTreeModel의 인스턴스임을 보장합니다. 이렇게 하면 트리 모델이 지원하는 모든 메서드를 알 수 있습니다.

예를 들어, 우리는 우리가 모델의 insertNodeInto 메서드를 호출할 수 있습니다 알고, 비록 그 메서드는 TreeModel 인터페이스에 의해 요구 되지 않습니다. 트리 모델은 트리 모델 리스너를 추가 및 제거하는 메서드를 구현해야 하며 트리의 구조 또는 데이터가 변경될 때 해당 수신기에 TreeModelEvents를 실행해야 합니다. 예를 들어 사용자가 계보를 지시할 때예제를 조상 표시에서 하위 항목 표시로 전환하도록 트리 모델이 변경한 다음 이벤트를 발생하여 해당 수신기(예: 트리 구성 요소)를 알려줍니다. 노드 변경 사항에 대한 알림을 위해 TreeModelListener를 구현할 수 있습니다. 다음은 사용자가 트리 노드에 대한 새 이름을 입력한 시기를 감지하는 트리 모델 수신기의 예입니다. 노드를 DefaultMutableTreeNode 개체로 표시하거나 해당 노드가 TreeNode 인터페이스를 구현할 필요가 없습니다. 따라서 TreeNode 인터페이스가 트리 모델에 적합하지 않은 경우 트리 노드에 대한 고유한 표현을 고안해 보십시오. 예를 들어 기존 계층 적 데이터 구조가 있는 경우 이를 복제하거나 TreeNode 금형에 강제로 넣을 필요가 없습니다. 기존 데이터 구조의 정보를 사용하도록 트리 모델을 구현하기만 하면 됩니다. 리프, 확장 분기 또는 축소된 분기 노드에 사용되는 기본 아이콘을 쉽게 변경할 수 있습니다. 이렇게 하려면 먼저 DefaultTreeCellRenderer의 인스턴스를 만듭니다. 언제든지 원하는 구성 요소를 다시 사용하여 처음부터 고유한 TreeCellRenderer 구현을 만들 수 있습니다.