[java] JFoenix를 이용하여 테마 스위칭 기능 추가하기

JFoenix는 JavaFX에서 사용할 수 있는 Material Design 라이브러리입니다. 이 라이브러리를 사용하면 JavaFX 애플리케이션에 멋진 테마와 디자인 요소를 쉽게 추가할 수 있습니다.

이번 튜토리얼에서는 JFoenix를 사용하여 테마 스위칭 기능을 추가하는 방법을 알아보겠습니다. 이 기능을 추가하면 사용자가 원하는 테마로 애플리케이션의 외관을 쉽게 변경할 수 있습니다.

JFoenix를 프로젝트에 추가하기

먼저, JFoenix를 프로젝트에 추가해야 합니다. JFoenix는 Maven이나 Gradle을 통해 손쉽게 추가할 수 있습니다. 프로젝트의 pom.xml 파일에 다음 의존성을 추가해주세요.

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

Gradle을 사용하신다면, build.gradle 파일에 다음 의존성을 추가해주세요.

implementation 'com.jfoenix:jfoenix:9.0.10'

의존성을 추가한 후 프로젝트를 다시 빌드해주세요.

테마 스위칭 기능 추가하기

테마 스위칭 기능을 추가하기 위해서는 다음과 같은 단계를 따라야 합니다:

  1. 먼저, FXML 파일에서 JFXDecorator 요소를 사용하여 윈도우를 꾸밀 수 있습니다. JFXDecorator는 창 프레임과 타이틀 바를 커스터마이징할 수 있는 요소입니다.
<?import com.jfoenix.controls.JFXDecorator?>
...
<JFXDecorator>
    <!-- 윈도우 내용을 이곳에 추가하세요 -->
</JFXDecorator>
  1. 다음으로, JFXToggleButton을 사용하여 테마 스위칭 버튼을 생성합니다.
<?import com.jfoenix.controls.JFXToggleButton?>
...
<JFXToggleButton id="themeSwitchButton">
    <!-- 버튼 내용을 이곳에 추가하세요 -->
</JFXToggleButton>
  1. Java 코드에서는 JFXToggleButton의 선택 여부를 이용하여 테마를 변경합니다. 다음은 테마를 변경하는 간단한 예시 코드입니다.
@FXML
private JFXToggleButton themeSwitchButton;

@FXML
private void handleThemeSwitch() {
    if (themeSwitchButton.isSelected()) {
        // 다크 테마로 변경하는 코드
        Application.setUserAgentStylesheet(Application.STYLESHEET_MODENA);
        Application.setUserAgentStylesheet(getClass().getResource("/css/darktheme.css").toExternalForm());
    } else {
        // 라이트 테마로 변경하는 코드
        Application.setUserAgentStylesheet(Application.STYLESHEET_MODENA);
        Application.setUserAgentStylesheet(getClass().getResource("/css/lighttheme.css").toExternalForm());
    }
}

위 코드에서 darktheme.csslighttheme.css는 애플리케이션에 사용할 테마의 CSS 파일입니다. 필요에 따라 테마의 CSS 파일을 수정해주세요.

  1. 마지막으로, handleThemeSwitch() 메서드를 themeSwitchButtononAction 속성에 연결합니다.
<JFXToggleButton id="themeSwitchButton" onAction="#handleThemeSwitch">
    <!-- 버튼 내용을 이곳에 추가하세요 -->
</JFXToggleButton>

이제 애플리케이션을 실행하고 테마 스위칭 버튼을 클릭하여 테마를 변경해보세요. 애플리케이션의 외관이 변경되는 것을 확인할 수 있을 것입니다.

결론

JFoenix를 사용하여 테마 스위칭 기능을 추가하는 방법을 알아보았습니다. 이 기능을 활용하면 JavaFX 애플리케이션에서 동적으로 테마를 변경할 수 있습니다. JFoenix의 다양한 디자인 요소와 테마를 활용하여 더욱 멋진 애플리케이션을 구현해보세요.


참고자료: