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

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

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

مثال

Main.java
import javafx.animation.ScaleTransition;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
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", 18));
text.setFill(Color.RED);
text.setStroke(Color.BLACK);
// و الذي سيتيح لنا إضافة تأثير التمدد على أي شيء نربطه به ScaleTransition هنا قمنا بإنشاء كائن من الكلاس
ScaleTransition scaleTransition = new ScaleTransition();
// عندما يتم تشغيله scaleTransition هنا قمنا بتحديد المدة التي سيتنفذ خلالها التأثير الذي يمثل الكائن
scaleTransition.setDuration(Duration.seconds(1));
// text سيتم تطبيقه على الكائن scaleTransition هنا حددنا أن التأثير الذي سنحصل عليه عند تشغيل الكائن
scaleTransition.setNode(text);
// هو تمدد عامودي و أفقي بنسبة 1.5 scaleTransition هنا قلنا أن التأثير الذي سنحصل عليه عند تشغيل الكائن
// هذه النسبة تعني أن الشيء الذي سيتم تطبيق التأثير عليه سيتم مضاعفة حجمه مرة و نصف
scaleTransition.setByY(1.5);
scaleTransition.setByX(1.5);
// هنا وضعنا 1- للإشارة إلى أننا لا نريد أن يتم إيقاف التأثير
scaleTransition.setCycleCount(-1);
// كلما تم تشغيله scaleTransition هنا قلنا أننا نريد أن يتم إرجاع التأثير الذي يفعله الكائن
scaleTransition.setAutoReverse(true);
// scaleTransition هنا قمنا بتشغيل التأثير الذي يمثله الكائن
scaleTransition.play();
// في النافذة Root Node لأننا ننوي جعله الـ StackPane هنا قمنا بإنشاء كائن من الكلاس
StackPane root = new StackPane();
// root في الكائن text هنا قمنا بإضافة الكائن
root.getChildren().addAll(text);
// فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
Scene scene = new Scene(root, 400, 250);
// هنا وضعنا عنوان للنافذة
stage.setTitle("Scale Transition Example");
// أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
stage.setScene(scene);
// هنا قمنا بإظهار النافذة
stage.show();
}
// هنا قمنا بتشغيل التطبيق
public static void main(String[] args) {
launch(args);
}
}
import javafx.animation.ScaleTransition; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.layout.StackPane; import javafx.scene.paint.Color; 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", 18)); text.setFill(Color.RED); text.setStroke(Color.BLACK); // و الذي سيتيح لنا إضافة تأثير التمدد على أي شيء نربطه به ScaleTransition هنا قمنا بإنشاء كائن من الكلاس ScaleTransition scaleTransition = new ScaleTransition(); // عندما يتم تشغيله scaleTransition هنا قمنا بتحديد المدة التي سيتنفذ خلالها التأثير الذي يمثل الكائن scaleTransition.setDuration(Duration.seconds(1)); // text سيتم تطبيقه على الكائن scaleTransition هنا حددنا أن التأثير الذي سنحصل عليه عند تشغيل الكائن scaleTransition.setNode(text); // هو تمدد عامودي و أفقي بنسبة 1.5 scaleTransition هنا قلنا أن التأثير الذي سنحصل عليه عند تشغيل الكائن // هذه النسبة تعني أن الشيء الذي سيتم تطبيق التأثير عليه سيتم مضاعفة حجمه مرة و نصف scaleTransition.setByY(1.5); scaleTransition.setByX(1.5); // هنا وضعنا 1- للإشارة إلى أننا لا نريد أن يتم إيقاف التأثير scaleTransition.setCycleCount(-1); // كلما تم تشغيله scaleTransition هنا قلنا أننا نريد أن يتم إرجاع التأثير الذي يفعله الكائن scaleTransition.setAutoReverse(true); // scaleTransition هنا قمنا بتشغيل التأثير الذي يمثله الكائن scaleTransition.play(); // في النافذة Root Node لأننا ننوي جعله الـ StackPane هنا قمنا بإنشاء كائن من الكلاس StackPane root = new StackPane(); // root في الكائن text هنا قمنا بإضافة الكائن root.getChildren().addAll(text); // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن Scene scene = new Scene(root, 400, 250); // هنا وضعنا عنوان للنافذة stage.setTitle("Scale Transition Example"); // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ stage.setScene(scene); // هنا قمنا بإظهار النافذة stage.show(); } // هنا قمنا بتشغيل التطبيق public static void main(String[] args) { launch(args); } }

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

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

الدورات

أدوات مساعدة

أقسام الموقع

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