JavaFX - الكلاس Hyperlink و الكلاس WebView

JavaFX الكلاس Hyperlink و الكلاس WebView

مقدمة الكلاس Hyperlink و الكلاس WebView

في JavaFX يمكنك وضع رابط ( Link ) في النافذة و عرض محتوى هذا الرابط بكل سهولة بالإعتماد على محرك الويب (JavaFX Web Engine).
لوضع رابط في النافذة و عرض محتوى هذا الرابط عند النقر عليه نحتاج إلى التعامل مع الكلاسات التالية: Hyperlink - WebView - WebEngine.


الكلاس Hyperlink

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

إذا نظرنا لطريقة بناء الكلاس Hyperlink سنجد أنه يرث من الكلاس ButtonBase مثل الكلاس Button.

public class Hyperlink
extends ButtonBase
	


الكلاس WebView

يستخدم لتحديد المكان الذي سيتم فيه عرض محتوى صفحة الويب في واجهة المستخدم.
إذاً نستخدم هذا الكلاس فقط لحجز مساحة في النافذة بهدف عرض محتوى صفحة ويب بداخلها.



الكلاس WebEngine

يستخدم لرسم صفحة الويب بداخل الـ WebView الذي نضعه واجهة المستخدم و يفعل كل المهام التي يفعلها المتصفح العادي. كما أنه لا داعي للقلق في حال كان حجم الصفحة كبير لأنه يضيف شريط تمرير (Scroll Bar) بشكل تلقائي عند الحاجة. كما أنه يتيح لك التحكم بطريقة ظهور شريط التمرير.



مصطلحات تقنية حول Hyperlink Status

Hyperlink Status تعني حالات الـ Hyperlink و يقصد منها المطلحات التي تطلق على الرابط عندما يتفاعل المستخدم معه.
هناك ثلاث حالات للـ Hyperlink كما في الصورة التالية.

hyperlink states

  • Unvisited Link: تعني أن الرابط لم يتم النقر عليه بعد. و هنا نلاحظ أنه إفتراضياً يتم تلوينه بالأزرق.

  • Visited Link: تعني أن الرابط قد تم النقر عليه سابقاً. و هنا نلاحظ أنه إفتراضياً يتم تلوينه بالأسود.

  • Link Is Clicked: تعني أن الرابط قد تم النقر عليه و لم يجري المستخدم أي تفاعل آخر بعدها مع باقي الأشياء الموجودة في النافذة. و هنا نلاحظ أنه إفتراضياً يتم تلوينه بالأسود لأنه قد تم زيارته و يوجد مربع أزرق حوله للإشارة إلى أن المستخدم لا يزال يقف عنده.



ملاحظة

في هذا الدرس سنقوم بالتركيز على طريقة التعامل مع الكلاس Hyperlink و سنتطرق إلى ما نحتاجه فقط من الكلاس WebView و الكلاس WebEngine.

كونستركتورات الكلاس Hyperlink

الجدول التالي يحتوي على كونستركتورات الكلاس Hyperlink.

الكونستركتور مع تعريفه
public Hyperlink() ينشئ كائن من الكلاس Hyperlink يمثل رابط فارغ.
public Hyperlink(String text) ينشئ كائن من الكلاس Hyperlink يمثل رابط له نص محدد.
مكان الباراميتر text نمرر النص الذي نريد وضعه له.
public Hyperlink(String text, Node graphic) ينشئ كائن من الكلاس Hyperlink يمثل رابط له نص و أيقونة معاً.

  • مكان الباراميتر text نمرر النص الذي نريد وضعه له.

  • مكان الباراميتر graphic نمرر كائن من الكلاس Node يمثل الأيقونة التي سيتم وضعها له.

دوال الكلاس Hyperlink

الجدول التالي يحتوي على دوال الكلاس Hyperlink الأكثر إستخداماً.

الدالة مع تعريفها
public String getText() ترجع نص كائن الـ Hyperlink الذي قام بإستدعائها كنص.
public void setText(String text) تستخدم لتبديل نص كائن الـ Hyperlink الذي قام بإستدعائها.
مكان الباراميتر text نضع النص الجديد.
public final void setTextFill(Paint value) تستخدم لتحديد لون نص كائن الـ Hyperlink الذي قام بإستدعائها.
مكان الباراميتر value نضع كائن من إحدى الكلاسات التي ترث من الكلاس Paint و التي يمكن إستخدامها لتحديد درجة اللون.
public final void setBackground(Background value) تستخدم لوضع لون أو صورة كخلفية لكائن الـ Hyperlink الذي قام بإستدعائها.
مكان الباراميتر value نضع كائن من الكلاس Background يشير إلى درجة اللون أو الصورة التي سيتم وضعها كخلفية.
public final void setFont(Font newFont) تستخدم لتحديد حجم و نوع خط كائن الـ Hyperlink الذي قام بإستدعائها.
مكان الباراميتر newFont نضع كائن من الكلاس Font يمثل خصائص الخط الجديد.
public final void setUnderline(boolean value) تستخدم لوضع خط تحت نص كائن الـ Hyperlink الذي قام بإستدعائها.
مكان الباراميتر value نضع القيمة true لإظهار خط تحت النص.
public final void setRotate(double degree) تستخدم لإدارة نص كائن الـ Hyperlink الذي قام بإستدعائها.
مكان الباراميتر degree نضع رقم يمثل درجة الدوران.
public final void setWrapText(boolean value) تستخدم لجعل نص كائن الـ Hyperlink الذي قام بإستدعائها ينزل على سطر جديد في حال كان لا يسع في سطر واحد.
مكان الباراميتر value نضع القيمة true لجعل الأحرف تظهر على سطر جديد عند الحاجة.
public final void setLineSpacing(double value) تستخدم لتحديد المسافة بين كل سطرين في نص كائن الـ Hyperlink الذي قام باستدعائها.
مكان الباراميتر value نضع رقم يمثل المسافة بين كل سطرين بالـ Pixel.
public final void setPadding(Insets value) تستخدم لإضافة هامش ( مسافة فارغة ) حول نص كائن الـ Hyperlink الذي قام باستدعائها.
مكان الباراميتر value نضع كائن من الكلاس Insets يمثل حجم الهامش حول النص من كل الجهات.
public final void setScaleX(double value) تستخدم لتمطيط حجم كائن الـ Hyperlink الذي قام باستدعائها بشكل أفقي.
مكان الباراميتر value نضع رقم يمثل كم مرة سيتم مضاعفة حجمه أفقياً.
public final void setScaleY(double value) تستخدم لتمطيط حجم كائن الـ Hyperlink الذي قام باستدعائها بشكل عامودي.
مكان الباراميتر value نضع رقم يمثل كم مرة سيتم مضاعفة حجمه عامودياً.
public final void setTranslateX(double value) تستخدم لتحديد مكان كائن الـ Hyperlink الذي قام باستدعائها أفقياً.
مكان الباراميتر value نضع رقم يمثل كم Pixel سيتم إزاحته من اليسار إلى اليمين.
public final void setTranslateY(double value) تستخدم لتحديد مكان كائن الـ Hyperlink الذي قام باستدعائها عامودياً.
مكان الباراميتر value نضع رقم يمثل كم Pixel سيتم إزاحته من الأعلى إلى الأسفل.
public void setPrefSize(double prefWidth, double prefHeight) تستخدم لتحديد حجم كائن الـ Hyperlink الذي قام باستدعائها.

  • مكان الباراميتر prefWidth نضع رقم يمثل عرض الـ Hyperlink بالـ Pixel.

  • مكان الباراميتر prefHeight نضع رقم يمثل طول الـ Hyperlink بالـ Pixel.

public final void setContentDisplay(ContentDisplay value) تستخدم لتحديد مكان ظهور الأيقونة التي تم إضافتها لكائن الـ Hyperlink الذي قام باستدعائها.

مكان الباراميتر value نضع إحدى ثوابت الكلاس ContentDisplay:
  • الثابت LEFT يجعل الصورة تظهر يسار النص كما يظهر بشكل إفتراضي.

  • الثابت RIGHT يجعل الصورة تظهر يمين النص.

  • الثابت TOP يجعل الصورة تظهر تحت النص.

  • الثابت BOTTOM يجعل الصورة تظهر فوق النص.

  • الثابت CENTER يجعل النص يظهر على الصورة.

  • الثابت GRAPHIC_ONLY يجعل الصورة فقط تظهر.

  • الثابت TEXT_ONLY يجعل النص فقط يظهر.

public final void setDisable(boolean value) تستخدم لجعل نص كائن الـ Hyperlink الذي قام باستدعائها يبدو غير مفعّل, أي يصبح لونه باهتاً و غير قابل للنقر عليه.
مكان الباراميتر value نضع القيمة true لجعله غير مفعّل.
public final void setStyle(String value) تستخدم لتعديل تصميم كائن الـ Hyperlink الذي قام بإستدعائها.
مكان الباراميتر value يمكنك تمرير إسم و قيمة أي خاصية تريد تعديلها في كائن الـ Hyperlink بأسلوب لغة CSS لإظهاره بالشكل الذي تريده.

JavaFX طريقة إنشاء Hyperlink و إضافته في النافذة

المثال التالي يعلمك طريقة إنشاء كائن من الكلاس Hyperlink و إضافته في النافذة.


مثال طريقة إنشاء كائن من الكلاس Hyperlink و إضافته في النافذة.

Main.java
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Hyperlink;
import javafx.stage.Stage;
 
public class Main extends Application {
 
    @Override
    public void start(Stage stage) {

        // يمثل الرابط الذي نريد إضافته في النافذة Hyperlink هنا قمنا بإنشاء كائن من الكلاس
        Hyperlink hyperlink = new Hyperlink("harmash.com");
 
        // في النافذة hyperlink هنا قمنا بتحديد مكان ظهور الكائن
        hyperlink.setTranslateX(150);
        hyperlink.setTranslateY(110);
        
         // hyperlink هنا قمنا بتحديد حجم الكائن
        hyperlink.setPrefSize(100, 30);
 
        // في النافذة 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();

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

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

طريقة إضافة Hyperlink في javafx

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

المثال التالي يعلمك طريقة تغيير شكل الـ 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

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

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


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

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



مثال طريقة إضافة أيقونة للـ 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.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

مقدمة

في JavaFX يمكنك وضع رابط ( Link ) في النافذة و عرض محتوى هذا الرابط بكل سهولة بالإعتماد على محرك الويب (JavaFX Web Engine).
لوضع رابط في النافذة و عرض محتوى هذا الرابط عند النقر عليه نحتاج إلى التعامل مع الكلاسات التالية: Hyperlink - WebView - WebEngine.


الكلاس Hyperlink

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

إذا نظرنا لطريقة بناء الكلاس Hyperlink سنجد أنه يرث من الكلاس ButtonBase مثل الكلاس Button.

public class Hyperlink
extends ButtonBase
	


الكلاس WebView

يستخدم لتحديد المكان الذي سيتم فيه عرض محتوى صفحة الويب في واجهة المستخدم.
إذاً نستخدم هذا الكلاس فقط لحجز مساحة في النافذة بهدف عرض محتوى صفحة ويب بداخلها.



الكلاس WebEngine

يستخدم لرسم صفحة الويب بداخل الـ WebView الذي نضعه واجهة المستخدم و يفعل كل المهام التي يفعلها المتصفح العادي. كما أنه لا داعي للقلق في حال كان حجم الصفحة كبير لأنه يضيف شريط تمرير (Scroll Bar) بشكل تلقائي عند الحاجة. كما أنه يتيح لك التحكم بطريقة ظهور شريط التمرير.



مصطلحات تقنية حول Hyperlink Status

Hyperlink Status تعني حالات الـ Hyperlink و يقصد منها المطلحات التي تطلق على الرابط عندما يتفاعل المستخدم معه.
هناك ثلاث حالات للـ Hyperlink كما في الصورة التالية.

hyperlink states

  • Unvisited Link: تعني أن الرابط لم يتم النقر عليه بعد. و هنا نلاحظ أنه إفتراضياً يتم تلوينه بالأزرق.

  • Visited Link: تعني أن الرابط قد تم النقر عليه سابقاً. و هنا نلاحظ أنه إفتراضياً يتم تلوينه بالأسود.

  • Link Is Clicked: تعني أن الرابط قد تم النقر عليه و لم يجري المستخدم أي تفاعل آخر بعدها مع باقي الأشياء الموجودة في النافذة. و هنا نلاحظ أنه إفتراضياً يتم تلوينه بالأسود لأنه قد تم زيارته و يوجد مربع أزرق حوله للإشارة إلى أن المستخدم لا يزال يقف عنده.



ملاحظة

في هذا الدرس سنقوم بالتركيز على طريقة التعامل مع الكلاس Hyperlink و سنتطرق إلى ما نحتاجه فقط من الكلاس WebView و الكلاس WebEngine.

كونستركتورات الكلاس Hyperlink

الجدول التالي يحتوي على كونستركتورات الكلاس Hyperlink.

الكونستركتور مع تعريفه
public Hyperlink() ينشئ كائن من الكلاس Hyperlink يمثل رابط فارغ.
public Hyperlink(String text) ينشئ كائن من الكلاس Hyperlink يمثل رابط له نص محدد.
مكان الباراميتر text نمرر النص الذي نريد وضعه له.
public Hyperlink(String text, Node graphic) ينشئ كائن من الكلاس Hyperlink يمثل رابط له نص و أيقونة معاً.

  • مكان الباراميتر text نمرر النص الذي نريد وضعه له.

  • مكان الباراميتر graphic نمرر كائن من الكلاس Node يمثل الأيقونة التي سيتم وضعها له.

دوال الكلاس Hyperlink

الجدول التالي يحتوي على دوال الكلاس Hyperlink الأكثر إستخداماً.

الدالة مع تعريفها
public String getText() ترجع نص كائن الـ Hyperlink الذي قام بإستدعائها كنص.
public void setText(String text) تستخدم لتبديل نص كائن الـ Hyperlink الذي قام بإستدعائها.
مكان الباراميتر text نضع النص الجديد.
public final void setTextFill(Paint value) تستخدم لتحديد لون نص كائن الـ Hyperlink الذي قام بإستدعائها.
مكان الباراميتر value نضع كائن من إحدى الكلاسات التي ترث من الكلاس Paint و التي يمكن إستخدامها لتحديد درجة اللون.
public final void setBackground(Background value) تستخدم لوضع لون أو صورة كخلفية لكائن الـ Hyperlink الذي قام بإستدعائها.
مكان الباراميتر value نضع كائن من الكلاس Background يشير إلى درجة اللون أو الصورة التي سيتم وضعها كخلفية.
public final void setFont(Font newFont) تستخدم لتحديد حجم و نوع خط كائن الـ Hyperlink الذي قام بإستدعائها.
مكان الباراميتر newFont نضع كائن من الكلاس Font يمثل خصائص الخط الجديد.
public final void setUnderline(boolean value) تستخدم لوضع خط تحت نص كائن الـ Hyperlink الذي قام بإستدعائها.
مكان الباراميتر value نضع القيمة true لإظهار خط تحت النص.
public final void setRotate(double degree) تستخدم لإدارة نص كائن الـ Hyperlink الذي قام بإستدعائها.
مكان الباراميتر degree نضع رقم يمثل درجة الدوران.
public final void setWrapText(boolean value) تستخدم لجعل نص كائن الـ Hyperlink الذي قام بإستدعائها ينزل على سطر جديد في حال كان لا يسع في سطر واحد.
مكان الباراميتر value نضع القيمة true لجعل الأحرف تظهر على سطر جديد عند الحاجة.
public final void setLineSpacing(double value) تستخدم لتحديد المسافة بين كل سطرين في نص كائن الـ Hyperlink الذي قام باستدعائها.
مكان الباراميتر value نضع رقم يمثل المسافة بين كل سطرين بالـ Pixel.
public final void setPadding(Insets value) تستخدم لإضافة هامش ( مسافة فارغة ) حول نص كائن الـ Hyperlink الذي قام باستدعائها.
مكان الباراميتر value نضع كائن من الكلاس Insets يمثل حجم الهامش حول النص من كل الجهات.
public final void setScaleX(double value) تستخدم لتمطيط حجم كائن الـ Hyperlink الذي قام باستدعائها بشكل أفقي.
مكان الباراميتر value نضع رقم يمثل كم مرة سيتم مضاعفة حجمه أفقياً.
public final void setScaleY(double value) تستخدم لتمطيط حجم كائن الـ Hyperlink الذي قام باستدعائها بشكل عامودي.
مكان الباراميتر value نضع رقم يمثل كم مرة سيتم مضاعفة حجمه عامودياً.
public final void setTranslateX(double value) تستخدم لتحديد مكان كائن الـ Hyperlink الذي قام باستدعائها أفقياً.
مكان الباراميتر value نضع رقم يمثل كم Pixel سيتم إزاحته من اليسار إلى اليمين.
public final void setTranslateY(double value) تستخدم لتحديد مكان كائن الـ Hyperlink الذي قام باستدعائها عامودياً.
مكان الباراميتر value نضع رقم يمثل كم Pixel سيتم إزاحته من الأعلى إلى الأسفل.
public void setPrefSize(double prefWidth, double prefHeight) تستخدم لتحديد حجم كائن الـ Hyperlink الذي قام باستدعائها.

  • مكان الباراميتر prefWidth نضع رقم يمثل عرض الـ Hyperlink بالـ Pixel.

  • مكان الباراميتر prefHeight نضع رقم يمثل طول الـ Hyperlink بالـ Pixel.

public final void setContentDisplay(ContentDisplay value) تستخدم لتحديد مكان ظهور الأيقونة التي تم إضافتها لكائن الـ Hyperlink الذي قام باستدعائها.

مكان الباراميتر value نضع إحدى ثوابت الكلاس ContentDisplay:
  • الثابت LEFT يجعل الصورة تظهر يسار النص كما يظهر بشكل إفتراضي.

  • الثابت RIGHT يجعل الصورة تظهر يمين النص.

  • الثابت TOP يجعل الصورة تظهر تحت النص.

  • الثابت BOTTOM يجعل الصورة تظهر فوق النص.

  • الثابت CENTER يجعل النص يظهر على الصورة.

  • الثابت GRAPHIC_ONLY يجعل الصورة فقط تظهر.

  • الثابت TEXT_ONLY يجعل النص فقط يظهر.

public final void setDisable(boolean value) تستخدم لجعل نص كائن الـ Hyperlink الذي قام باستدعائها يبدو غير مفعّل, أي يصبح لونه باهتاً و غير قابل للنقر عليه.
مكان الباراميتر value نضع القيمة true لجعله غير مفعّل.
public final void setStyle(String value) تستخدم لتعديل تصميم كائن الـ Hyperlink الذي قام بإستدعائها.
مكان الباراميتر value يمكنك تمرير إسم و قيمة أي خاصية تريد تعديلها في كائن الـ Hyperlink بأسلوب لغة CSS لإظهاره بالشكل الذي تريده.

أمثلة شاملة


المثال الأول

المثال التالي يعلمك طريقة إنشاء كائن من الكلاس Hyperlink و إضافته في النافذة.

طريقة إضافة Hyperlink في javafx

شاهد المثال »



المثال الثاني

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

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

شاهد المثال »



المثال الثالث

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

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

شاهد المثال »



المثال الرابع

المثال التالي يعلمك طريقة فتح صفحة ويب بداخل WebView عند النقر على Hyperlink.

طريقة فتح صفحة ويب بداخل WebView عند النقر على Hyperlink في javafx

شاهد المثال »

كورس تعلم javaFX