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

JavaFXطريقة تغيير شكل الـHyperlink

المثال التالي يعلمك طريقة تغيير شكل الـ Hyperlink.
ستتعلم طريقة إزالة الخط الذي يظهر تحته, لون الخط الإفتراضي, حجم الخط الإفتراضي, المربع الذي يظهر حوله عند النقر عليه, إضافة لون للخلفية إلخ..


مثال

Main.java
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Hyperlink;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.Background;
import javafx.scene.layout.BackgroundFill;
import javafx.scene.layout.Border;
import javafx.scene.layout.CornerRadii;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage stage) {

        // يمثل الرابط الذي نريد إضافته في النافذة Hyperlink هنا قمنا بإنشاء كائن من الكلاس
        Hyperlink hyperlink = new Hyperlink("HARMASH.COM");
        
        // hyperlink يمثل اللون الذي نريد وضعه كخلفية للكائن Background هنا قمنا بإنشاء كائن من الكلاس
        Background defaultBackground = new Background(new BackgroundFill(Color.CADETBLUE, new CornerRadii(5), Insets.EMPTY));

        // عند تمرير الفأرة فوقه hyperlink يمثل اللون الذي نريد وضعه كخلفية للكائن Background هنا قمنا بإنشاء كائن من الكلاس
        Background hoveredBackground = new Background(new BackgroundFill(Color.DARKCYAN, new CornerRadii(5), Insets.EMPTY));

        // في النافذة hyperlink هنا قمنا بتحديد مكان ظهور الكائن
        hyperlink.setTranslateX(125);
        hyperlink.setTranslateY(108);

        // hyperlink هنا قمنا بتحديد حجم الكائن
        hyperlink.setPrefSize(150, 34);
        
        // بشكل إفتراضي hyperlink هنا قمنا بإلغاء المربع الإفتراضي الذي يظهر حول الكائن
        hyperlink.setBorder(Border.EMPTY);

        // hyperlink هنا قمنا بإخفاء الخط الذي يظهر بشكل إفتراضي عند تمرير الفأرة فوق الكائن
        hyperlink.setUnderline(false);

        // hyperlink هنا قمنا بتغيير نوع و حجم خط الكائن
        hyperlink.setFont(new Font("Arial", 15));

        // أبيض hyperlink هنا جعلنا لون خط الكائن
        hyperlink.setTextFill(Color.WHITE);

        // يظهر في المنتصف hyperlink هنا جعلنا نص الكائن
        hyperlink.setAlignment(Pos.CENTER);

        // defaultBackground الإفتراضي إلى اللون الذي يشير له الكائن hyperlink هنا قمنا بتغيير لون خلفية الكائن
        hyperlink.setBackground(defaultBackground);

        // في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس
        Group root = new Group();

        // root في الكائن hyperlink هنا قمنا بإضافة الكائن
        root.getChildren().add(hyperlink);

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

        // هنا وضعنا عنوان للنافذة
        stage.setTitle("JavaFX Hyperlink");

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

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

        // hyperlink هنا قمنا بتحديد ماذا سيحدث عند تمرير الفأرة فوق الكائن
        hyperlink.addEventHandler(MouseEvent.MOUSE_ENTERED, (MouseEvent e) -> {
            // hyperlink سيتم وضعه كخلفية للكائن hoveredBackground هنا قلنا أن اللون الذي يشر له الكائن
            hyperlink.setBackground(hoveredBackground);
        });

        // hyperlink هنا قمنا بتحديد ماذا سيحدث عند إبعاد الفأرة من فوق الكائن
        hyperlink.addEventHandler(MouseEvent.MOUSE_EXITED, (MouseEvent e) -> {
            // لذلك سيرجع لونها كما كان hyperlink سيتم وضعه كخلفية للكائن defaultBackground هنا قلنا أن اللون الذي يشر له الكائن
            hyperlink.setBackground(defaultBackground);
        });
        
    }

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

}

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

طريقة شكل ال Hyperlink في javafx