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

}

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

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


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