JavaFX طريقة إضافة أيقونة للـHyperlink مع تحديد مكان ظهورها

المثال التالي يعلمك طريقة إضافة أيقونة للـ Hyperlink مع تحديد مكان ظهورها.


ملاحظة: عليك إنشاء مجلد و وضع الأيقونة التي تريد وضعها للـ Hyperlink بداخله كما في الصورة التالية.

الصورة توضح أننا أضفنا مجلد إسمه images و وضعنا فيه صورة إسمها chrome-icon.png.

⇓ تحميل مجلد الصور


مثال

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.ContentDisplay;
import javafx.scene.control.Hyperlink;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
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) {

        // يمثل الصورة التي سنضعها كأيقونة Image هنا قمنا بإنشاء كائن من الكلاس
        Image image = new Image(getClass().getResourceAsStream("/images/chrome-icon.png"));
 
        // يمثل الرابط الذي نريد إضافته في النافذة Hyperlink هنا قمنا بإنشاء كائن من الكلاس
        Hyperlink hyperlink = new Hyperlink("Go To Google", new ImageView(image));
        
        // hyperlink هنا حددنا أن الأيقونة ستظهر من يسار النص الموضوع في الكائن 
        hyperlink.setContentDisplay(ContentDisplay.LEFT);

		// 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

الدورات

أدوات مساعدة

أقسام الموقع

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