[java] JFoenix를 이용한 컨트롤 이벤트 처리 방법

JFoenix는 JavaFX를 기반으로 한 Material Design 테마를 제공하는 라이브러리입니다. JFoenix를 사용하면 실제 Material Design 스타일의 컨트롤을 생성하고 커스터마이징할 수 있습니다. 이번 포스트에서는 JFoenix를 사용하여 컨트롤 이벤트를 처리하는 방법에 대해 알아보겠습니다.

1. JFoenix 의존성 추가

먼저 프로젝트에서 JFoenix를 사용하기 위해서는 JFoenix 라이브러리의 의존성을 추가해야 합니다. Maven을 사용하는 경우 pom.xml 파일에 다음 의존성을 추가하세요:

<dependencies>
    <dependency>
        <groupId>com.jfoenix</groupId>
        <artifactId>jfoenix</artifactId>
        <version>9.0.10</version>
    </dependency>
</dependencies>

Gradle을 사용하는 경우 build.gradle 파일에 다음 의존성을 추가하세요:

dependencies {
    implementation 'com.jfoenix:jfoenix:9.0.10'
}

의존성을 추가한 후에는 프로젝트를 빌드하여 JFoenix를 사용할 준비를 마치세요.

2. 컨트롤 이벤트 처리

JFoenix를 사용하여 생성한 컨트롤에 이벤트를 처리하려면 다음 단계를 따르세요:

2.1 FXML 파일에서 JFoenix 컨트롤 추가

FXML 파일에서 JFoenix 컨트롤을 추가합니다. 예를 들어 JFXButton을 추가하려면 다음과 같이 FXML 파일을 변경하세요:

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

<?import javafx.scene.layout.VBox?>
<?import com.jfoenix.controls.JFXButton?>

<VBox xmlns="http://javafx.com/javafx/16" xmlns:fx="http://javafx.com/fxml/1"
      fx:controller="com.example.MyController">
      
    <JFXButton text="Click me!" onAction="#handleButtonClick" />
    
</VBox>

2.2 이벤트 핸들러 작성

FXML 파일에서 onAction 속성을 통해 이벤트 핸들러 메소드를 지정했습니다. 이제 해당 메소드를 작성해야 합니다. 컨트롤러 클래스에서 다음과 같이 이벤트 핸들러 메소드를 작성하세요:

package com.example;

import com.jfoenix.controls.JFXButton;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;

public class MyController {

    @FXML
    private JFXButton myButton;

    @FXML
    private void handleButtonClick(ActionEvent event) {
        System.out.println("Button clicked!");
    }

}

handleButtonClick 메소드는 버튼이 클릭될 때 실행될 코드를 정의합니다. 위의 예제에서는 단순히 “Button clicked!” 메시지를 출력하고 있습니다.

2.3 컨트롤러와 FXML 파일 연결

마지막으로, 컨트롤러와 FXML 파일을 연결해야 합니다. 이를 위해 메인 애플리케이션 클래스에서 다음과 같이 FXML 파일을 로드하는 코드를 추가하세요:

package com.example;

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

public class MainApp extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
        primaryStage.setTitle("JFoenix Example");
        primaryStage.setScene(new Scene(root));
        primaryStage.show();
    }

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

위의 예제에서는 sample.fxml 파일을 로드하여 화면에 표시하고 있습니다.

결론

JFoenix를 사용하여 컨트롤 이벤트를 처리하는 방법에 대해 알아보았습니다. JFoenix는 실제 Material Design 스타일 컨트롤을 손쉽게 생성하고 다양한 이벤트를 처리할 수 있는 강력한 라이브러리입니다. JFoenix를 사용하여 멋진 UI와 훌륭한 사용자 경험을 제공해보세요!


참고 자료