java jtree 예제

루트 노드는 계층 구조에서 최상위입니다. 그러나 경우에 따라 루트 노드표시가 필요하지 않을 수 있습니다. 예를 들어` 루트 텍스트와 함께 표시 된 루트 노드를 사용 했습니다. 이것은 매우 유용하지 않습니다. 그래서, 우리가 그것을 숨기고 싶다면? 간단한 API 호출을 통해 가능합니다. (이 예제를 제공하는 튜토리얼 리더 올리비에 베를랑거에게 감사드립니다.) Java 모양과 느낌을 사용하는 경우 트리 노드 간의 관계를 표시하도록 선을 그릴지 여부를 사용자 지정할 수 있습니다. 기본적으로 Java 모양과 느낌은 노드 간에 각진 선을 그립니다. 트리의 JTree.line스타일 클라이언트 속성을 설정하여 다른 규칙을 지정할 수 있습니다. 예를 들어 Java가 노드를 그룹화하기 위해 가로 선만 사용하도록 요청하려면 다음 코드를 사용합니다.

및 책을 설명하는 HTML 파일의 URL입니다. toString 메서드는 책 이름을 반환 하기 위해 구현 됩니다. 따라서 BookInfo 개체와 연결된 각 노드에는 책 이름이 표시됩니다. 노드 변경 사항에 대한 알림을 위해 TreeModelListener를 구현할 수 있습니다. 다음은 사용자가 트리 노드의 새 이름을 입력한 시기를 감지하는 트리 모델 리스너의 예입니다. 이렇게 하려면 먼저 DefaultTreeCellRenderer의 인스턴스를 만듭니다. 언제든지 원하는 구성 요소를 다시 사용하여 처음부터 고유한 TreeCellRenderer 구현을 만들 수 있습니다. 다음으로 렌더러에서 다음 방법 중 하나 이상을 호출하여 사용할 아이콘을 지정합니다: setLeafIcon(리프 노드용), setOpenIcon(확장된 분기 노드의 경우), setClosedIcon(축소된 분기 노드의 경우). 트리에 노드 유형에 대한 아이콘이 표시되지 않으려면 아이콘에 대해 null을 지정합니다.

아이콘을 설정한 후에는 트리의 setCellRenderer 메서드를 사용하여 DefaultTreeCellRenderer가 해당 노드를 페인트하도록 지정합니다. 다음은 TreeIconDemo.java에서 가져온 예제입니다: 다음 스냅샷은 Java 모양과 느낌을 사용할 때 JTree.lineStyle 속성을 설정한 결과를 보여 줍니다. 요약하자면 JTree 생성기를 호출하고 TreeNode를 인수로 구현하는 클래스를 지정하여 트리를 만들 수 있습니다. 트리가 너무 많은 공간을 차지하지 않도록 스크롤 창 안에 트리를 넣어야 할 수 있습니다. 사용자 클릭에 대한 응답으로 트리 노드가 확장되고 축소되도록 하려면 아무 것도 수행할 필요가 없습니다. 그러나 예를 들어 노드를 클릭하여 노드를 선택할 때 트리가 응답하도록 몇 가지 코드를 추가해야 합니다. Java 모양과 느낌이 선을 그려서는 안 되도록 지정하려면 이 코드를 사용합니다: 응용 프로그램은 튜토리얼 리더 리처드 스탠포드가 제공한 예제를 기반으로 합니다. 트리의 모델을 명시적으로 만들면 코드는 트리의 모델이 DefaultTreeModel의 인스턴스임을 보장합니다. 이렇게 하면 트리 모델이 지원하는 모든 메서드를 알 수 있습니다.

예를 들어, 우리는 우리가 모델의 insertNodeInto 메서드를 호출할 수 있습니다 알고, 비록 그 메서드는 TreeModel 인터페이스에 의해 요구 되지 않습니다. 모양과 느낌에 관계없이 노드에 의해 표시되는 기본 아이콘은 노드가 리프인지 여부와 확장 여부에 따라 결정됩니다. 예를 들어 Windows 및 Motif 모양 및 느낌 구현에서 각 리프 노드의 기본 아이콘은 점입니다. Java 모양과 느낌에서 기본 리프 아이콘은 종이모양의 기호입니다. 우리가 보여 준 모든 모양과 느낌 구현에서 분기 노드는 폴더와 같은 기호로 표시됩니다. 일부 모양과 느낌은 축소된 분기와 확장된 분기에 대해 서로 다른 아이콘을 가질 수 있습니다. 흥미롭게도 TreeModel 인터페이스는 모든 종류의 개체를 트리 노드로 허용합니다. 노드를 DefaultMutableTreeNode 개체로 표시하거나 해당 노드가 TreeNode 인터페이스를 구현할 필요가 없습니다.

This entry was posted in Uncategorized. Bookmark the permalink.

Comments are closed.