BROKER SEGUR - Rio Ulla 7 , Madrid

swing jtree 예제

요약하자면 JTree 생성기를 호출하고 TreeNode를 인수로 구현하는 클래스를 지정하여 트리를 만들 수 있습니다. 트리가 너무 많은 공간을 차지하지 않도록 스크롤 창 안에 트리를 넣어야 할 수 있습니다. 사용자 클릭에 대한 응답으로 트리 노드가 확장되고 축소되도록 하려면 아무 것도 수행할 필요가 없습니다. 그러나 예를 들어 노드를 클릭하여 노드를 선택할 때 트리가 응답하도록 몇 가지 코드를 추가해야 합니다. 예를 들어 이전 코드 조각에서 사용된 BookInfo 클래스는 책 이름과 책을 설명하는 HTML 파일의 URL이라는 두 가지 데이터를 포함하는 사용자 지정 클래스입니다. toString 메서드는 책 이름을 반환 하기 위해 구현 됩니다. 따라서 BookInfo 개체와 연결된 각 노드에는 책 이름이 표시됩니다. 트리의 모델을 명시적으로 만들면 코드는 트리의 모델이 DefaultTreeModel의 인스턴스임을 보장합니다. 이렇게 하면 트리 모델이 지원하는 모든 메서드를 알 수 있습니다. 예를 들어, 우리는 우리가 모델의 insertNodeInto 메서드를 호출할 수 있습니다 알고, 비록 그 메서드는 TreeModel 인터페이스에 의해 요구 되지 않습니다.

리프, 확장 분기 또는 축소된 분기 노드에 사용되는 기본 아이콘을 쉽게 변경할 수 있습니다. 이렇게 하려면 먼저 DefaultTreeCellRenderer의 인스턴스를 만듭니다. 언제든지 원하는 구성 요소를 다시 사용하여 처음부터 고유한 TreeCellRenderer 구현을 만들 수 있습니다. 다음으로 렌더러에서 다음 방법 중 하나 이상을 호출하여 사용할 아이콘을 지정합니다: setLeafIcon(리프 노드용), setOpenIcon(확장된 분기 노드의 경우), setClosedIcon(축소된 분기 노드의 경우). 트리에 노드 유형에 대한 아이콘이 표시되지 않으려면 아이콘에 대해 null을 지정합니다. 아이콘을 설정한 후에는 트리의 setCellRenderer 메서드를 사용하여 DefaultTreeCellRenderer가 해당 노드를 페인트하도록 지정합니다. 다음은 TreeIconDemo.java에서 가져온 예제입니다. 트리가 각 노드를 페인트할 때 JTree나 해당 모양 및 느낌 별 구현에는 실제로 노드를 그리는 코드가 포함되어 있지 않습니다. 대신 트리는 셀 렌더러의 페인팅 코드를 사용하여 노드를 페인팅합니다.

예를 들어 «Java 프로그래밍 언어»문자열이 있는 리프 노드를 페인트하려면 트리에서 해당 문자열로 리프 노드를 페인트할 수 있는 구성 요소를 반환하도록 셀 렌더러에 요청합니다. 셀 렌더러가 DefaultTreeCellRenderer인 경우 기본 리프 아이콘뒤에 문자열을 그리는 레이블을 반환합니다. 선택 이벤트를 듣기 위해 트리선택Listener를 추가해야 합니다. 이것은 스윙 API에 정의된 인터페이스이며 valueChanged() 메서드를 구현해야 합니다. 선택 항목의 소스는 이 메서드에 매개 변수로 전달됩니다. 루트 노드는 계층 구조에서 최상위입니다. 그러나 경우에 따라 루트 노드표시가 필요하지 않을 수 있습니다. 예를 들어` 루트 텍스트와 함께 표시 된 루트 노드를 사용 했습니다. 이것은 매우 유용하지 않습니다. 그래서, 우리가 그것을 숨기고 싶다면? 간단한 API 호출을 통해 가능합니다. JTree 클래스를 사용하면 계층 데이터를 표시할 수 있습니다. JTree 개체에는 실제로 데이터가 포함되지 않습니다.

단순히 데이터의 보기를 제공합니다. 다른 사소한 Swing 구성 요소와 마찬가지로 트리는 데이터 모델을 쿼리하여 데이터를 가져옵니다. 다음은 트리 그림입니다: Java 모양과 느낌을 사용하는 경우 트리 노드 간의 관계를 표시하기 위해 선을 그릴지 여부를 사용자 지정할 수 있습니다. 기본적으로 Java 모양과 느낌은 노드 간에 각진 선을 그립니다.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies