[java] JFoenix를 이용하여 프래그먼트처럼 화면 전환 구현하기

때로는 다른 화면으로 전환해야 하는 애플리케이션을 개발할 때가 있습니다. 이때 프래그먼트처럼 화면을 전환하고 싶다면 JFoenix 라이브러리를 사용하면 편리합니다.

JFoenix란?

JFoenix는 JavaFX 컨트롤 구성 요소를 사용자 정의할 수 있는 자바 라이브러리입니다. JFoenix를 사용하면 Material Design 스타일의 컨트롤을 손쉽게 만들 수 있습니다. 이 라이브러리는 Java 8 이상에서 동작하며, JavaFX 애플리케이션을 보다 현대적이고 아름답게 만들어 줍니다.

화면 전환 구현하기

다음은 JFoenix 라이브러리를 사용하여 프래그먼트처럼 화면을 전환하는 방법을 보여주는 예제 코드입니다.

import com.jfoenix.controls.JFXButton;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Main extends Application {

    private Stage primaryStage;

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

    @Override
    public void start(Stage primaryStage) {
        this.primaryStage = primaryStage;
        showScreen1();
    }

    private void showScreen1() {
        Screen1 screen1 = new Screen1(this::showScreen2);
        StackPane root = new StackPane(screen1);
        Scene scene = new Scene(root, 800, 600);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    private void showScreen2() {
        Screen2 screen2 = new Screen2(this::showScreen1);
        StackPane root = new StackPane(screen2);
        Scene scene = new Scene(root, 800, 600);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

class Screen1 extends StackPane {

    public Screen1(Runnable onSwitch) {
        JFXButton switchButton = new JFXButton("Go to Screen 2");
        switchButton.setOnAction(event -> onSwitch.run());
        
        getChildren().add(switchButton);
    }
}

class Screen2 extends StackPane {

    public Screen2(Runnable onSwitch) {
        JFXButton switchButton = new JFXButton("Go back to Screen 1");
        switchButton.setOnAction(event -> onSwitch.run());
        
        getChildren().add(switchButton);
    }
}

위의 코드에서 Screen1은 첫 번째 화면을 나타내며, Screen2는 두 번째 화면을 나타냅니다. 각 화면은 Runnable 객체를 매개변수로 받아 화면 전환을 수행합니다. showScreen1showScreen2 메서드에서 각 화면을 생성하고 전환할 수 있습니다.

이렇게 JFoenix 라이브러리를 사용하여 프래그먼트처럼 화면 전환을 구현할 수 있습니다.

결론

JFoenix는 JavaFX 애플리케이션에 Material Design 스타일을 적용할 수 있는 훌륭한 라이브러리입니다. 위의 예제 코드를 참고하여 JFoenix를 사용하여 화면 전환을 구현해 보세요.