>  기사  >  Java  >  자바 애니메이션

자바 애니메이션

WBOY
WBOY원래의
2024-08-30 16:16:40968검색

Java의 애니메이션에는 두 가지 기본 단계가 필요합니다. 즉, 애니메이션 프레임을 만든 다음 Java에서 프레임에 색상을 지정할 수 있도록 하는 것입니다. 애플릿, AWT, Swing 및 JavaFX는 Java 애니메이션을 수행할 수 있습니다. 애플릿 애니메이션은 브라우저 호환 애플리케이션용인 반면 AWT, Swing 및 JavaFX는 독립형 애플리케이션입니다. 실시간으로 대부분의 애플리케이션은 독립 실행형입니다. 그래서 우리는 JavaFX를 사용하여 애니메이션을 다루겠습니다.

광고 이 카테고리에서 인기 있는 강좌 JAVA MASTERY - 전문 분야 | 78 코스 시리즈 | 15가지 모의고사

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

왜 JavaFX를 사용하고 AWT와 Swing을 사용하지 않습니까?

AWT에는 무거운 구성요소가 있고 Swing에는 최신 UI가 없습니다. 그래서 우리는 JavaFX 애니메이션을 고려했습니다. 우리의 개발을 더 쉽게 만들어주는 가볍고 진보된 최신 UI 구성요소입니다.

JavaFX의 애니메이션 유형:

  1. 회전 전환
  2. 규모 전환
  3. 번역 전환
  4. 페이드 전환
  5. 채우기 전환
  6. 뇌졸중 전환
  7. 순차적 전환
  8. 병렬 전환
  9. 전환 일시중지
  10. 경로 전환

JavaFX 애니메이션은 Java에서 어떻게 작동하나요?

JavaFX 애니메이션 패키지는 모든 애니메이션 클래스를 포함하는 애니메이션입니다. 따라서 애니메이션을 적용하는 동안 애니메이션을 가져와야 합니다. 수업에 애니메이션을 적용합니다. Animation 클래스를 확장해야 합니다. 이 애니메이션 클래스에는 필요한 모든 애니메이션 패키지가 포함되어 있습니다.

1. 회전 전환

이 애니메이션은 회전 기능을 제공합니다. 패키지는 animation.RotateTransition

입니다.

구문:

RotateTransition rotate = new RotateTransition();  //creating object for Rotate Transition
rotate.play();  //applying rotation by using play() method

2. 규모 전환

이 애니메이션은 개체를 X, Y, Z 세 방향 모두로 움직입니다. 패키지는 animation.ScaleTransition입니다.

구문:

ScaleTransition rotate = new ScaleTransition();  //creating object for scale transition
rotate.play();  //applying rotation by using play() method

3. 번역 전환

이 애니메이션은 일정한 시간 간격으로 개체를 한 위치에서 다른 위치로 이동합니다. 패키지는 animation.TranslateTransition

입니다.

구문:

TranslateTransition rotate = new TranslateTransition();  //creating object for Translate transition
rotate.play();  //applying rotation by using play() method

4. 페이드 전환

불투명도 값을 지정하여 개체를 흐릿하게 만드는 애니메이션입니다. 패키지는 animation.FadeTransition

입니다.

구문:

FadeTransition rotate = new FadeTransition();  //creating object for fade transition
rotate.play();  //applying rotation by using play() method

5. 채우기 전환

이 애니메이션은 시간 간격을 지정하여 개체를 2가지 색상으로 차례로 채우도록 합니다. 패키지는 animation.FillTransition

입니다.

구문:

FillTransition rotate = new FillTransition();  //creating object for fill transition
rotate.play();  //applying rotation by using play() method

아래에서 자바 애니메이션의 예를 살펴보겠습니다.

예 #1 – 회전 전환

코드:

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
}
}

출력:

자바 애니메이션

자바 애니메이션

이렇게 해서 삼각형이 회전하게 됩니다.

예 #2 – 규모 전환

코드:

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);
}
}

출력:

자바 애니메이션

자바 애니메이션

이런 식으로 원이 확장됩니다.

예 #3 – 번역 전환

코드:

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);
}
}

출력:

자바 애니메이션

자바 애니메이션

제곱 스케일 전환 동작을 수행하는 방법입니다.

예 #4 – 페이드 전환

코드:

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:데이터세트 자바다음 기사:데이터세트 자바