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

JavaFXطريقة عرض نص الـText من منظور مختلف

المثال التالي يعلمك طريقة عرض نص الـ Text من منظور مختلف.
معلومة: أسلوب عرض النص بهذا الشكل يسمى ( Perspective Effect ).

ملاحظة: المستطيل الأزرق الذي وضعناه خلف النص طبقنا عليه نفس المنظور بهدف إظهار التأثير بشكل أوضح فقط.


مثال

Main.java
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.effect.PerspectiveTransform;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage stage) {
// يمثلان النص و المستطيل اللذين سنضيفهما في النافذة Rectangle و كائن من الكلاس Text هنا قمنا بإنشاء كائن من الكلاس
Text text = new Text("HARMASH.COM");
Rectangle rectangle = new Rectangle();
// rectangle هنا قمنا بتحديد حجم الكائن
rectangle.setWidth(280.0f);
rectangle.setHeight(80.0f);
// text هنا قمنا بتغيير نوع و حجم خط الكائن
text.setFont(Font.font("Tahoma", FontWeight.BOLD, 40));
// rectangle و لون الكائن text هنا قمنا بتغيير لون خط الكائن
text.setFill(Color.YELLOW);
rectangle.setFill(Color.BLUE);
// يمثل تأثير المنظور PerspectiveTransform هنا قمنا بإنشاء كائن من الكلاس
PerspectiveTransform pt = new PerspectiveTransform();
// هنا قمنا بتحديد المنطقة التي ستتأثر بهذا المنظور
// y و x فعلياً قمنا بتحديد مكان 4 نقاط و كل نقطة أعطيناها قيمة
pt.setUlx(40.0f);
pt.setUly(80.0f);
pt.setUrx(350.0f);
pt.setUry(110.0f);
pt.setLrx(350.0f);
pt.setLry(130.0f);
pt.setLlx(40.0f);
pt.setLly(160.0f);
// للحصول على أداء أفضل فقط setCache() هنا قمنا باستدعاء الدالة
text.setCache(true);
rectangle.setCache(true);
// rectangle و text على الكائنين pt هنا قمنا بتطبيق تأثير المنظور الذي يمثله الكائن
text.setEffect(pt);
rectangle.setEffect(pt);
// في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس
Group root = new Group();
// root في الكائن text هنا قمنا بإضافة الكائن
root.getChildren().add(rectangle);
root.getChildren().add(text);
// فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
Scene scene = new Scene(root, 400, 250);
// هنا وضعنا عنوان للنافذة
stage.setTitle("JavaFX Text");
// أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
stage.setScene(scene);
// هنا قمنا بإظهار النافذة
stage.show();
}
// هنا قمنا بتشغيل التطبيق
public static void main(String[] args) {
launch(args);
}
}
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.effect.PerspectiveTransform; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.scene.text.Font; import javafx.scene.text.FontWeight; import javafx.scene.text.Text; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage stage) { // يمثلان النص و المستطيل اللذين سنضيفهما في النافذة Rectangle و كائن من الكلاس Text هنا قمنا بإنشاء كائن من الكلاس Text text = new Text("HARMASH.COM"); Rectangle rectangle = new Rectangle(); // rectangle هنا قمنا بتحديد حجم الكائن rectangle.setWidth(280.0f); rectangle.setHeight(80.0f); // text هنا قمنا بتغيير نوع و حجم خط الكائن text.setFont(Font.font("Tahoma", FontWeight.BOLD, 40)); // rectangle و لون الكائن text هنا قمنا بتغيير لون خط الكائن text.setFill(Color.YELLOW); rectangle.setFill(Color.BLUE); // يمثل تأثير المنظور PerspectiveTransform هنا قمنا بإنشاء كائن من الكلاس PerspectiveTransform pt = new PerspectiveTransform(); // هنا قمنا بتحديد المنطقة التي ستتأثر بهذا المنظور // y و x فعلياً قمنا بتحديد مكان 4 نقاط و كل نقطة أعطيناها قيمة pt.setUlx(40.0f); pt.setUly(80.0f); pt.setUrx(350.0f); pt.setUry(110.0f); pt.setLrx(350.0f); pt.setLry(130.0f); pt.setLlx(40.0f); pt.setLly(160.0f); // للحصول على أداء أفضل فقط setCache() هنا قمنا باستدعاء الدالة text.setCache(true); rectangle.setCache(true); // rectangle و text على الكائنين pt هنا قمنا بتطبيق تأثير المنظور الذي يمثله الكائن text.setEffect(pt); rectangle.setEffect(pt); // في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس Group root = new Group(); // root في الكائن text هنا قمنا بإضافة الكائن root.getChildren().add(rectangle); root.getChildren().add(text); // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن Scene scene = new Scene(root, 400, 250); // هنا وضعنا عنوان للنافذة stage.setTitle("JavaFX Text"); // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ stage.setScene(scene); // هنا قمنا بإظهار النافذة stage.show(); } // هنا قمنا بتشغيل التطبيق public static void main(String[] args) { launch(args); } }

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

طريقة عرض نص الـ Text من منظور مختلف في javafx


الدالة setCache() نستدعيها فقط من أجل الحصول على أداء أفضل.

الدورات

أدوات مساعدة

أقسام الموقع

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