02 Aug

java jtree 예제

요약하자면 JTree 생성기를 호출하고 TreeNode를 인수로 구현하는 클래스를 지정하여 트리를 만들 수 있습니다. 트리가 너무 많은 공간을 차지하지 않도록 스크롤 창 안에 트리를 넣어야 할 수 있습니다. 사용자 클릭에 대한 응답으로 트리 노드가 확장되고 축소되도록 하려면 아무 것도 수행할 필요가 없습니다. 그러나 예를 들어 노드를 클릭하여 노드를 선택할 때 트리가 응답하도록 몇 가지 코드를 추가해야 합니다. 노드 변경 사항에 대한 알림을 위해 TreeModelListener를 구현할 수 있습니다. 다음은 사용자가 트리 노드에 대한 새 이름을 입력한 시기를 감지하는 트리 모델 수신기의 예입니다. Java 모양과 느낌을 사용하는 경우 트리 노드 간의 관계를 표시하도록 선을 그릴지 여부를 사용자 지정할 수 있습니다. 기본적으로 Java 모양과 느낌은 노드 간에 각진 선을 그립니다. 트리의 JTree.line스타일 클라이언트 속성을 설정하여 다른 규칙을 지정할 수 있습니다.

예를 들어 Java가 노드를 그룹화하기 위해 수평 선만 사용하도록 요청하려면 다음 코드를 사용합니다. 예를 들어 다음 코드에 표시된 대로 응용 프로그램과 함께 트리의 루트, 조부모 및 부모를 선언하고 로드할 수 있습니다. 나머지 클래스는 마지막 예제의 클래스와 동일합니다. 모양과 느낌에 관계없이 노드에 의해 표시되는 기본 아이콘은 노드가 리프인지 여부와 확장 여부에 따라 결정됩니다. 예를 들어 Windows 및 Motif 모양 및 느낌 구현에서 각 리프 노드의 기본 아이콘은 점입니다. Java 모양과 느낌에서 기본 리프 아이콘은 종이모양의 기호입니다. 우리가 보여 준 모든 모양과 느낌 구현에서 분기 노드는 폴더와 같은 기호로 표시됩니다. 일부 모양과 느낌은 축소된 분기와 확장된 분기에 대해 서로 다른 아이콘을 가질 수 있습니다. 루트 노드는 계층 구조에서 최상위입니다. 그러나 경우에 따라 루트 노드표시가 필요하지 않을 수 있습니다. 예를 들어` 루트 텍스트와 함께 표시 된 루트 노드를 사용 했습니다.

이것은 매우 유용하지 않습니다. 그래서, 우리가 그것을 숨기고 싶다면? 예를 들어 이전 코드 스니펫에 사용된 BookInfo 클래스는 책 이름과 책을 설명하는 HTML 파일의 URL이라는 두 가지 데이터를 포함하는 사용자 지정 클래스입니다. toString 메서드는 책 이름을 반환 하기 위해 구현 됩니다. 따라서 BookInfo 개체와 연결된 각 노드에는 책 이름이 표시됩니다.