[java] JavaFX 테이블 뷰와 트리 뷰 사용하기

개요

JavaFX는 Java 언어를 기반으로 한 GUI(그래픽 사용자 인터페이스) 개발 플랫폼입니다. 테이블 뷰와 트리 뷰는 JavaFX에서 데이터를 표시하는데 주로 사용되는 컨트롤입니다. 이 블로그 포스트에서는 JavaFX의 테이블 뷰와 트리 뷰를 사용하는 방법에 대해 다루겠습니다.

테이블 뷰 사용하기

테이블 뷰는 표 형식으로 데이터를 표시하는데 사용됩니다. 다음은 JavaFX에서 테이블 뷰를 사용하는 예제 코드입니다.

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class TableViewExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        TableView<Person> tableView = new TableView<>();

        TableColumn<Person, String> firstNameColumn = new TableColumn<>("First Name");
        firstNameColumn.setCellValueFactory(new PropertyValueFactory<>("firstName"));

        TableColumn<Person, String> lastNameColumn = new TableColumn<>("Last Name");
        lastNameColumn.setCellValueFactory(new PropertyValueFactory<>("lastName"));

        tableView.getColumns().addAll(firstNameColumn, lastNameColumn);

        ObservableList<Person> data = FXCollections.observableArrayList(
                new Person("John", "Doe"),
                new Person("Jane", "Smith"),
                new Person("Mike", "Johnson")
        );

        tableView.setItems(data);

        VBox vbox = new VBox(tableView);

        Scene scene = new Scene(vbox, 400, 300);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }

    public class Person {
        private String firstName;
        private String lastName;

        public Person(String firstName, String lastName) {
            this.firstName = firstName;
            this.lastName = lastName;
        }

        public String getFirstName() {
            return firstName;
        }

        public String getLastName() {
            return lastName;
        }
    }
}

위 코드는 간단한 테이블 뷰를 생성하고, “First Name”과 “Last Name” 두 개의 열을 생성하여 데이터를 표시합니다. 테이블 뷰에 데이터는 ObservableList에 담아 설정하면 됩니다.

트리 뷰 사용하기

트리 뷰는 계층 구조로 데이터를 표시하는 컨트롤입니다. 이는 주로 파일 탐색기와 같은 디렉토리 및 파일 구조를 표현하는 데 사용됩니다. 다음은 JavaFX에서 트리 뷰를 사용하는 예제 코드입니다.

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TreeItem;
import javafx.scene.control.TreeView;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class TreeViewExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        TreeItem<String> rootItem = new TreeItem<>("Root");

        TreeItem<String> item1 = new TreeItem<>("Item 1");
        TreeItem<String> item2 = new TreeItem<>("Item 2");
        TreeItem<String> item3 = new TreeItem<>("Item 3");

        rootItem.getChildren().addAll(item1, item2, item3);

        TreeView<String> treeView = new TreeView<>(rootItem);

        VBox vbox = new VBox(treeView);

        Scene scene = new Scene(vbox, 400, 300);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

위 코드는 “Root”라는 루트 아이템과 세 개의 자식 아이템을 가지는 트리 뷰를 생성합니다. 각 아이템은 트리 아래에 추가될 수 있는 계층 구조를 가지며, 계층 구조는 TreeItem을 사용하여 구현됩니다.

결론

JavaFX에서 테이블 뷰와 트리 뷰는 데이터를 GUI에 표시하는데 유용한 도구입니다. 이 블로그 포스트에서는 간단한 예제 코드를 통해 JavaFX 테이블 뷰와 트리 뷰를 소개하였습니다. JavaFX의 다양한 기능 및 활용 방법에는 더 많은 학습이 필요하지만, 이를 통해 데이터를 시각적으로 표현하는 기본적인 개념을 이해할 수 있습니다.

참고 자료