Java의 애니메이션에는 두 가지 기본 단계가 필요합니다. 즉, 애니메이션 프레임을 만든 다음 Java에서 프레임에 색상을 지정할 수 있도록 하는 것입니다. 애플릿, AWT, Swing 및 JavaFX는 Java 애니메이션을 수행할 수 있습니다. 애플릿 애니메이션은 브라우저 호환 애플리케이션용인 반면 AWT, Swing 및 JavaFX는 독립형 애플리케이션입니다. 실시간으로 대부분의 애플리케이션은 독립 실행형입니다. 그래서 우리는 JavaFX를 사용하여 애니메이션을 다루겠습니다.
광고 이 카테고리에서 인기 있는 강좌 JAVA MASTERY - 전문 분야 | 78 코스 시리즈 | 15가지 모의고사무료 소프트웨어 개발 과정 시작
웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등
왜 JavaFX를 사용하고 AWT와 Swing을 사용하지 않습니까?
AWT에는 무거운 구성요소가 있고 Swing에는 최신 UI가 없습니다. 그래서 우리는 JavaFX 애니메이션을 고려했습니다. 우리의 개발을 더 쉽게 만들어주는 가볍고 진보된 최신 UI 구성요소입니다.
JavaFX의 애니메이션 유형:
JavaFX 애니메이션 패키지는 모든 애니메이션 클래스를 포함하는 애니메이션입니다. 따라서 애니메이션을 적용하는 동안 애니메이션을 가져와야 합니다. 수업에 애니메이션을 적용합니다. Animation 클래스를 확장해야 합니다. 이 애니메이션 클래스에는 필요한 모든 애니메이션 패키지가 포함되어 있습니다.
이 애니메이션은 회전 기능을 제공합니다. 패키지는 animation.RotateTransition
입니다.구문:
RotateTransition rotate = new RotateTransition(); //creating object for Rotate Transition rotate.play(); //applying rotation by using play() method
이 애니메이션은 개체를 X, Y, Z 세 방향 모두로 움직입니다. 패키지는 animation.ScaleTransition입니다.
구문:
ScaleTransition rotate = new ScaleTransition(); //creating object for scale transition rotate.play(); //applying rotation by using play() method
이 애니메이션은 일정한 시간 간격으로 개체를 한 위치에서 다른 위치로 이동합니다. 패키지는 animation.TranslateTransition
입니다.구문:
TranslateTransition rotate = new TranslateTransition(); //creating object for Translate transition rotate.play(); //applying rotation by using play() method
불투명도 값을 지정하여 개체를 흐릿하게 만드는 애니메이션입니다. 패키지는 animation.FadeTransition
입니다.구문:
FadeTransition rotate = new FadeTransition(); //creating object for fade transition rotate.play(); //applying rotation by using play() method
이 애니메이션은 시간 간격을 지정하여 개체를 2가지 색상으로 차례로 채우도록 합니다. 패키지는 animation.FillTransition
입니다.구문:
FillTransition rotate = new FillTransition(); //creating object for fill transition rotate.play(); //applying rotation by using play() method
아래에서 자바 애니메이션의 예를 살펴보겠습니다.
코드:
package com.rotate.transition; import javafx.animation.RotateTransition; import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.shape.Polygon; import javafx.scene.transform.Rotate; import javafx.stage.Stage; import javafx.util.Duration; public class RotateTransitionAnimation extends Application { @Override public void start(Stage outStage) throws Exception { Polygon traingle = new Polygon();// Creating triangle Double[] doubleValues=new Double[] { 5.0, 5.0, 20.0, 10.0, 10.0, 20.0 }; traingle.getPoints().addAll(doubleValues); traingle.setFill(Color.LIMEGREEN); traingle.setStroke(Color.HOTPINK); traingle.setStrokeWidth(5); RotateTransition rotateTransition = new RotateTransition();// Creating object for Rotate Transition class rotateTransition.setAxis(Rotate.Z_AXIS);// Set Axis rotation in Z axis rotateTransition.setByAngle(360);// Set angle rotation 360 degrees rotateTransition.setCycleCount(500);// Set cycle count rotation 500 rotateTransition.setDuration(Duration.millis(1000));// Set time duration for change the object rotateTransition.setAutoReverse(true);//auto reverse activation rotateTransition.setNode(traingle);//applying rotate transition on triangle rotateTransition.play();// applying rotation by play method Group root = new Group(); //creating group for adding elements root.getChildren().add(traingle); //adding triangle to group Scene scene = new Scene(root, 700, 500, Color.BLACK);//creating scene outStage.setScene(scene);//adding scene to stage for display window outStage.setTitle("Triangle Rotate Transition"); outStage.show(); } public static void main(String[] args) { launch(args);//launch method calls start() method internally } }
출력:
이렇게 해서 삼각형이 회전하게 됩니다.
코드:
package com.scale.transition; import javafx.scene.Group; import javafx.stage.Stage; import javafx.util.Duration; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.shape.Circle; import javafx.animation.ScaleTransition; import javafx.application.Application; public class ScaleTransitionAnimation extends Application { @Override public void start(Stage stage) { Circle circle = new Circle(); // Creating Circle circle.setCenterX(280.0f);// position in X direction circle.setCenterY(125.0f);// position in Y direction circle.setRadius(40.0f);// circle radius circle.setFill(Color.AQUAMARINE);// circle color circle.setStrokeWidth(21);// stroke width of circle ScaleTransition scaleTransition = new ScaleTransition();// creating // object for // scale // transition scaleTransition.setDuration(Duration.millis(2000));// set time duration scaleTransition.setNode(circle);// applying rotate transition node on // circle scaleTransition.setByY(1.5);// Y direction movement scaleTransition.setByX(1.5);// X direction movement scaleTransition.setCycleCount(55);// Set cycle count rotation 55 scaleTransition.setAutoReverse(true);// auto reverse activation scaleTransition.play();// applying rotate transition on circle Group root = new Group(); // creating group for adding elements root.getChildren().add(circle); // adding triangle to group Scene scene = new Scene(root, 600, 500, Color. AZURE);// creating scene stage.setScene(scene);// adding scene to stage for display window stage.setTitle("Circle Scale Transition"); stage.show(); } public static void main(String args[]) { launch(args); } }
출력:
이런 식으로 원이 확장됩니다.
코드:
package com.translate.transition; import javafx.stage.Stage; import javafx.util.Duration; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.animation.TranslateTransition; import javafx.application.Application; import javafx.scene.Group; public class TranslateTransitionAnimation extends Application { @Override public void start(Stage outStage) throws Exception { Rectangle square = new Rectangle(50, 50); // Creating square square.setFill(Color.AQUA); // square border color square.setStroke(Color.BLUEVIOLET);// square area color TranslateTransition translateTranstion = new TranslateTransition();// creating object for Translate transition translateTranstion.setByY(350);// movement in Y direction translateTranstion.setDuration(Duration.millis(1500));// time duration translateTranstion.setCycleCount(450);// Set cycle count rotation 450 translateTranstion.setAutoReverse(true);// auto reverse activation translateTranstion.setNode(square);// applying rotate transition node on square translateTranstion.play();// applying rotate transition on circle Group root = new Group(); // creating group for adding elements root.getChildren().add(square); // adding square to group Scene scene = new Scene(root, 600, 500, Color.CHOCOLATE);// creating scene outStage.setScene(scene);// adding scene to stage for display window outStage.setTitle("Square Translate Transition"); outStage.show(); } public static void main(String[] args) { launch(args); } }
출력:
제곱 스케일 전환 동작을 수행하는 방법입니다.
코드:
package com.fade.transition; import javafx.animation.FadeTransition; import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.shape.Ellipse; import javafx.scene.shape.Rectangle; import javafx.stage.Stage; import javafx.util.Duration; public class FadeTransitionAnimation extends Application { @Override public void start(Stage outStage) throws Exception { Ellipse ellipse = new Ellipse(); // Creating Ellipse object ellipse.setCenterX(300.0f); //setting ellipse center distance in X direction ellipse.setCenterY(150.0f); //setting ellipse center distance in Y direction ellipse.setRadiusX(150.0f); //setting radius in X direction ellipse.setRadiusY(75.0f);//setting radius in y direction ellipse.setFill(Color.AQUA); // ellipse border color ellipse.setStroke(Color.BLUEVIOLET);// ellipse area color FadeTransition fadeTransition = new FadeTransition();// creating Fade transition object fadeTransition.setDuration(Duration.millis(5000));// time duration fadeTransition.setFromValue(10);//setting opacity value for fading fadeTransition.setToValue(0.1); fadeTransition.setCycleCount(900);// Set cycle count rotation 900 fadeTransition.setAutoReverse(true);// auto reverse activation fadeTransition.setNode(ellipse);// applying fade transition node on ellipse fadeTransition.play();// applying fade transition on ellipse Group root = new Group(); // creating group for adding elements root.getChildren().add(ellipse); // adding ellipse to group Scene scene = new Scene(root, 600, 500, Color.CHOCOLATE);// creating scene outStage.setScene(scene);// adding scene to stage for display window outStage.setTitle("Ellipse Fade Transition"); outStage.show(); } public static void main(String[] args) { launch(args); } }
출력:
이런 식으로 페이드 전환이 발생합니다.
위 내용은 자바 애니메이션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!