Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

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

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

مثال

Main.java
import javafx.animation.PathTransition;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.LineTo;
import javafx.scene.shape.MoveTo;
import javafx.scene.shape.Path;
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("HARMASH.COM");
        
        // بالإضافة إلى لونه text هنا قمنا بتحديد نوع و حجم خط الكائن
        text.setFont(new Font("Tahoma", 28));
        text.setFill(Color.RED);
        text.setStroke(Color.BLACK);
        
        // يمثل المسار الذي ننوي جعل النص يسير عليه Path هنا قمنا بإنشاء كائن من الكلاس
        // ملاحظة: المسار عبارة عن مجموعة نقاط قمنا بتحديد مكان كل نقطة منهم في النافذة
        Path path = new Path();
        MoveTo move = new MoveTo(200, 30);
        LineTo line1 = new LineTo(300, 125);
        LineTo line2 = new LineTo(200, 220);
        LineTo line3 = new LineTo(100, 125);
        LineTo line4 = new LineTo(200, 30);
        path.getElements().addAll(move, line1, line2, line3, line4);
        
        // و الذي سيتيح لنا إضافة تأثير التحرك على أي شيء نربطه به PathTransition هنا قمنا بإنشاء كائن من الكلاس
        PathTransition pathTransition = new PathTransition();

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

        // path هو التحرك على النقاط الموضوعة في الكائن pathTransition هنا قلنا أن التأثير الذي سنحصل عليه عند تشغيل الكائن
        pathTransition.setPath(path);

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

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

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

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

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

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

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

    }

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

}

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

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