[java] JavaFX 색상 선택기 구현하기

이번 블로그 포스트에서는 JavaFX를 사용하여 색상 선택기를 구현하는 방법을 알아보겠습니다.

1. JavaFX 프로젝트 설정

먼저, JavaFX 프로젝트를 설정해야 합니다. IntelliJ IDEA와 같은 IDE를 사용할 경우, 새로운 JavaFX 프로젝트를 생성하면 자동으로 필요한 라이브러리와 구성 파일이 생성됩니다.

2. 색상 선택기 레이아웃 디자인

FXML 파일을 사용하여 색상 선택기의 레이아웃을 디자인할 수 있습니다. 예를 들어, color_picker.fxml 파일을 생성하고 다음과 같은 내용을 작성해보겠습니다.

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.layout.*?>
<?import javafx.scene.control.*?>

<GridPane alignment="CENTER" hgap="10" vgap="10">
    <Label text="색상 선택:" />
    <ColorPicker fx:id="colorPicker" />
</GridPane>

위의 예제에서는 GridPane을 사용하여 LabelColorPicker를 정렬하였습니다. fx:id 속성은 컨트롤러에서 해당 컨트롤을 참조하기 위해 사용됩니다.

3. 색상 선택 이벤트 처리

이제 컨트롤러 클래스를 작성하고, FXML 파일에 정의된 컨트롤들을 연결하여 색상 선택 이벤트를 처리할 수 있습니다. 예를 들어, ColorPickerController.java 파일을 생성하고 다음과 같은 내용을 작성해보겠습니다.

import javafx.fxml.FXML;
import javafx.scene.control.ColorPicker;
import javafx.scene.paint.Color;

public class ColorPickerController {

    @FXML
    private ColorPicker colorPicker;

    public void initialize() {
        colorPicker.setOnAction(event -> {
            // 선택된 색상을 가져옴
            Color selectedColor = colorPicker.getValue();
            
            // 색상을 처리하는 로직 추가
            // ...
        });
    }
}

@FXML 어노테이션을 사용하여 FXML 파일에 정의된 ColorPicker를 컨트롤러와 연결합니다. initialize 메서드는 FXML 파일이 로드되고 컨트롤러가 초기화될 때 자동으로 호출되는 메서드입니다. 이 메서드 내에서 colorPicker.setOnAction 메서드를 사용하여 색상 선택 이벤트를 처리합니다.

4. Main 클래스에 컨트롤러 연결

마지막으로, 메인 클래스에 컨트롤러를 연결하여 애플리케이션을 실행할 수 있도록 해야 합니다. Main.java 파일에는 다음과 같이 작성해보겠습니다.

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("color_picker.fxml"));
        primaryStage.setTitle("색상 선택기");
        primaryStage.setScene(new Scene(root, 300, 200));
        primaryStage.show();
    }

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

이제 애플리케이션을 실행하면 색상 선택기가 표시되고, 사용자가 색상을 선택할 때마다 ColorPickerController 클래스의 색상 선택 이벤트가 호출됩니다.

마무리

이번 포스트에서는 JavaFX를 사용하여 색상 선택기를 구현하는 방법을 알아보았습니다. FXML 파일을 사용하여 레이아웃을 디자인하고, 컨트롤러 클래스에서 이벤트를 처리하는 방식을 활용했습니다. JavaFX를 사용하면 간단하게 다양한 UI 컴포넌트를 구현할 수 있으므로, 필요한 경우 JavaFX를 적극적으로 활용해보시기 바랍니다.

참고 자료: