JavaFX طريقة إضافة التأثير Rotate Transition

المثال التالي يعلمك كيف تضيف التأثير Rotate Transition لأي شيء تنوي وضعه في النافذة.
فعلياً, جعلنا المربع يدور 180 درجة كل ثانية و نصف, ثم يدور بالإتجاه العكسي كما كان موضوعاً قبل أن يبدأ بالدوران.

مثال

Main.java
import javafx.animation.RotateTransition;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.util.Duration;

public class Main extends Application {

    @Override
    public void start(Stage stage) {
		
		// يمثل النص الذي نريد إضافته في النافذة Text هنا قمنا بإنشاء كائن من الكلاس
		Text text = new Text("Loading");
		
		// بالإضافة إلى لونه text هنا قمنا بتحديد نوع و حجم خط الكائن
        text.setFont(new Font("Tahoma", 18));
        text.setFill(Color.WHITE);
        text.setStroke(Color.WHITE);

        // يمثل المستطيل الذي نريد إضافته في النافذة Rectangle هنا قمنا بإنشاء كائن من الكلاس
        Rectangle rectangle = new Rectangle();

		// rectangle هنا قمنا بتحديد طول و عرض الكائن
        rectangle.setHeight(100);
        rectangle.setWidth(100);
		
		// بالعرض و الطول rectangle هنا قنما بتحديد درجة إنحناء زوايا الكائن 
        rectangle.setArcWidth(30); 
        rectangle.setArcHeight(30); 

        // إلى اللون الأزرق و حددنا أن لون حدوده هو الأسود rectangle هنا قمنا بإعطاء الكائن لون
        rectangle.setFill(Color.CADETBLUE);
        rectangle.setStroke(Color.BLACK);
		
		// و الذي سيتيح لنا إضافة تأثير الدوران على أي شيء نربطه به RotateTransition هنا قمنا بإنشاء كائن من الكلاس
        RotateTransition rotateTransition = new RotateTransition();

        // عندما يتم تشغيله rotateTransition هنا قمنا بتحديد المدة التي سيتنفذ خلالها التأثير الذي يمثل الكائن
        rotateTransition.setDuration(Duration.seconds(1.5));
        
        // rectangle سيتم تطبيقه على الكائن rotateTransition هنا حددنا أن التأثير الذي سنحصل عليه عند تشغيل الكائن
        rotateTransition.setNode(rectangle);

        // هو دوران ناحية اليمين بنسبة 180 درجة rotateTransition هنا قلنا أن التأثير الذي سنحصل عليه عند تشغيل الكائن
        rotateTransition.setByAngle(180);

        // هنا وضعنا 1- للإشارة إلى أننا لا نريد أن يتم إيقاف التأثير
        rotateTransition.setCycleCount(-1);

        // كلما تم تشغيله rotateTransition هنا قلنا أننا نريد أن يتم إرجاع التأثير الذي يفعله الكائن
        rotateTransition.setAutoReverse(true);

        // rotateTransition هنا قمنا بتشغيل التأثير الذي يمثله الكائن
        rotateTransition.play();
        
        // في النافذة Root Node لأننا ننوي جعله الـ StackPane هنا قمنا بإنشاء كائن من الكلاس
        StackPane root = new StackPane();
        
        // root في الكائن text و rectangle هنا قمنا بإضافة الكائنين
        root.getChildren().addAll(rectangle, text);

        // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
        Scene scene = new Scene(root, 400, 250);

        // هنا وضعنا عنوان للنافذة
        stage.setTitle("Rotate Transition Example");

        // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
        stage.setScene(scene);

        // هنا قمنا بإظهار النافذة
        stage.show();

    }

    // هنا قمنا بتشغيل التطبيق
    public static void main(String[] args) {
        launch(args);
    }

}
		

ستظهر لك النافذة التالية عند التشغيل.

مثال حول Rotate Transition في JavaFX

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة