[java] JavaFX 애니메이션 및 효과

JavaFX는 동적인 사용자 인터페이스를 만들기 위한 강력한 도구 집합을 제공합니다. 이 중에서 애니메이션과 효과는 사용자에게 더욱 흥미로운 경험을 제공하는 데 도움이 됩니다.

1. 애니메이션

1.1. Transition 클래스

JavaFX에서 애니메이션을 구현하기 위해 가장 일반적으로 사용되는 클래스는 Transition 클래스입니다. Transition 클래스는 추상 클래스이므로 이를 상속하여 구체적인 애니메이션 클래스를 작성해야 합니다. 예를 들어, TranslateTransition 클래스를 사용하여 요소를 움직이는 애니메이션을 만들 수 있습니다.

TranslateTransition transition = new TranslateTransition(Duration.seconds(1), node);
transition.setToX(100);
transition.setToY(100);
transition.play();

1.2. KeyFrame 및 Timeline

JavaFX에서는 키프레임(KeyFrame)과 타임라인(Timeline)을 사용하여 복잡한 애니메이션을 구현할 수 있습니다. 키프레임은 애니메이션의 특정 시간에서 요소의 속성값을 정의하는 데 사용됩니다. 타임라인은 키프레임을 시간 축에 따라 정의하고, 이들을 사용하여 애니메이션을 조정합니다.

Rectangle rect = new Rectangle(0, 0, 50, 50);

KeyFrame keyFrame1 = new KeyFrame(Duration.seconds(0), 
    new KeyValue(rect.fillProperty(), Color.RED));
KeyFrame keyFrame2 = new KeyFrame(Duration.seconds(1), 
    new KeyValue(rect.fillProperty(), Color.BLUE));

Timeline timeline = new Timeline(keyFrame1, keyFrame2);
timeline.setCycleCount(Timeline.INDEFINITE);
timeline.setAutoReverse(true);
timeline.play();

2. 효과

2.1. Fade Transition

FadeTransition 클래스를 사용하여 요소의 투명도를 서서히 변경하여 페이드 인 또는 페이드 아웃 효과를 만들 수 있습니다.

FadeTransition fadeTransition = new FadeTransition(Duration.seconds(1), node);
fadeTransition.setFromValue(1.0);
fadeTransition.setToValue(0.0);
fadeTransition.play();

2.2. Rotate Transition

RotateTransition 클래스를 사용하여 요소를 회전하는 애니메이션을 만들 수 있습니다.

RotateTransition rotateTransition = new RotateTransition(Duration.seconds(1), node);
rotateTransition.setByAngle(360);
rotateTransition.setCycleCount(Animation.INDEFINITE);
rotateTransition.play();

마무리

JavaFX를 사용하면 애니메이션과 효과를 구현하여 사용자에게 더욱 멋진 경험을 제공할 수 있습니다. Transition 클래스와 키프레임, 타임라인을 이용하여 다양한 애니메이션을 만들고 FadeTransition 또는 RotateTransition을 사용하여 효과를 추가할 수 있습니다. JavaFX의 이러한 기능들을 적절하게 활용하여 동적이고 흥미로운 사용자 인터페이스를 구현해보세요.

참고: JavaFX 애니메이션 및 효과 문서