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

[Swing] إضافة محتوى JavaFX إلى تطبيق Swing

اذهب الى الأسفل

[Swing] إضافة محتوى JavaFX إلى تطبيق Swing Empty [Swing] إضافة محتوى JavaFX إلى تطبيق Swing

مُساهمة من طرف زهراء السبت فبراير 09, 2019 11:39 am

فى هذا المقال سأقوم بشرح كيفية إضافة محتوى أو عناصر التحكم #JavaFX إلى تطبيق #Swing وكيفية استخدام مؤشرات الترابط بشكل صحيح عندما يعمل كل من Swing و JavaFX داخل تطبيق واحد.

حيث توفر JavaFX SDK الفئة #JFXPanel ، الموجودة في حزمة javafx.embed.swing وتمكنك من تضمين محتوى JavaFX في تطبيقات Swing.

لغرض هذا المقال ، تقوم بإنشاء نافذة رسومية JFrame ، وإضافة كائن 3JFXPanel إليه ، وتعيين المشهد الرسومي لمكون #JFXPanel الذي يحتوي على محتوى #JavaFX....وذلك على النحو التالى :


1_انشاء Scene هو المنطقة المخصصة في النافذة لوضع المحتوى عليه للجافا اف اكس

الكود:
 private static Scene createScene() {
        Group  root  =  new  Group();
        Scene  scene  =  new  Scene(root,600,300, Color.ALICEBLUE);
        Text  text  =  new  Text();
        
        text.setX(40);
        text.setY(100);
        text.setFont(new Font(25));
        text.setText("Welcome JavaFX!");

        root.getChildren().add(text);

        return (scene);
    }


2_انشاء الحاوية #JFXPanel ومن ثم اضافة #Scene الية على النحو التالى :

الكود:
 private static void initFX(JFXPanel fxPanel) {
            
             Scene scene = createScene();
             fxPanel.setScene(scene);
         }


3_كما هو الحال في أي تطبيق #Swing ، يمكنك إنشاء واجهة المستخدم الرسومية (GUI) ....لذلك سنقوم بانشاء الطريقة initAndShowGUI ، والتي تقوم بإنشاء مكون JFrame وإضافة كائن JFXPanel إليها. يؤدي إنشاء مثيل لفئة #JFXPanel إلى تشغيل  JavaFX وقت تشغيل بشكلٍ ضمني. بعد إنشاء واجهة المستخدم الرسومية ، قم باستدعاء طريقة initFX لإنشاء مشهد JavaFX على مؤشر ترابط تطبيق JavaFX....وذلك على النحو التالى :

الكود:

private static void initAndShowGUI() {

 JFrame frame = new JFrame("Swing and JavaFX");


 final JFXPanel fxPanel = new JFXPanel();


 frame.add(fxPanel);


 frame.setSize(300, 200);


 frame.setVisible(true);


 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);





 Platform.runLater(new Runnable() {


 @Override


 public void run() {


 initFX(fxPanel);


 }


 });


 }


وهكذا يمكنك تشغيل تطبيقات JAVAFX فى تطبيقات JAVA SWING بشكل ضمنى ....و المثال بالكامل على النحو التالى :

الكود:

import javafx.application.Platform;
import javafx.embed.swing.JFXPanel;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class Test {

    private static void initAndShowGUI() {
        // This method is invoked on the EDT thread
        JFrame frame = new JFrame("Swing and JavaFX");
        final JFXPanel fxPanel = new JFXPanel();
        frame.add(fxPanel);
        frame.setSize(300, 200);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Platform.runLater(new Runnable() {
            @Override
            public void run() {
                initFX(fxPanel);
            }
       });
    }

    private static void initFX(JFXPanel fxPanel) {
        // This method is invoked on the JavaFX thread
        Scene scene = createScene();
        fxPanel.setScene(scene);
    }

    private static Scene createScene() {
        Group  root  =  new  Group();
        Scene  scene  =  new  Scene(root, Color.ALICEBLUE);
        Text  text  =  new  Text();
        
        text.setX(40);
        text.setY(100);
        text.setFont(new Font(25));
        text.setText("Welcome JavaFX!");

        root.getChildren().add(text);

        return (scene);
    }
    
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                initAndShowGUI();
            }
        });
    }
}
زهراء
زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

[Swing] إضافة محتوى JavaFX إلى تطبيق Swing Empty رد: [Swing] إضافة محتوى JavaFX إلى تطبيق Swing

مُساهمة من طرف السنى الأربعاء نوفمبر 27, 2019 1:50 pm

شرح موفق ....شكرا زهراء
السنى
السنى
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 249
النقاط : 464
التقيم : 25
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

[Swing] إضافة محتوى JavaFX إلى تطبيق Swing Empty رد: [Swing] إضافة محتوى JavaFX إلى تطبيق Swing

مُساهمة من طرف RANA الجمعة نوفمبر 19, 2021 7:54 am


شكرا جزيلا اين انتى استاذة
RANA
RANA
.....
.....

تاريخ التسجيل : 01/08/2013
المساهمات : 79
النقاط : 124
التقيم : 3
الدولة : فلسطين
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

[Swing] إضافة محتوى JavaFX إلى تطبيق Swing Empty رد: [Swing] إضافة محتوى JavaFX إلى تطبيق Swing

مُساهمة من طرف أحمد مناع الجمعة مارس 11, 2022 9:42 am

RANA كتب:
شكرا جزيلا اين انتى استاذة

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى