Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux 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);
    }

}

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

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


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