[Swing] إضافة محتوى JavaFX إلى تطبيق Swing
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: واجهة المستخدم الرسومية Java Swing
صفحة 1 من اصل 1 • شاطر
[Swing] إضافة محتوى JavaFX إلى تطبيق Swing
فى هذا المقال سأقوم بشرح كيفية إضافة محتوى أو عناصر التحكم #JavaFX إلى تطبيق #Swing وكيفية استخدام مؤشرات الترابط بشكل صحيح عندما يعمل كل من Swing و JavaFX داخل تطبيق واحد.
حيث توفر JavaFX SDK الفئة #JFXPanel ، الموجودة في حزمة javafx.embed.swing وتمكنك من تضمين محتوى JavaFX في تطبيقات Swing.
لغرض هذا المقال ، تقوم بإنشاء نافذة رسومية JFrame ، وإضافة كائن 3JFXPanel إليه ، وتعيين المشهد الرسومي لمكون #JFXPanel الذي يحتوي على محتوى #JavaFX....وذلك على النحو التالى :
1_انشاء Scene هو المنطقة المخصصة في النافذة لوضع المحتوى عليه للجافا اف اكس
2_انشاء الحاوية #JFXPanel ومن ثم اضافة #Scene الية على النحو التالى :
3_كما هو الحال في أي تطبيق #Swing ، يمكنك إنشاء واجهة المستخدم الرسومية (GUI) ....لذلك سنقوم بانشاء الطريقة initAndShowGUI ، والتي تقوم بإنشاء مكون JFrame وإضافة كائن JFXPanel إليها. يؤدي إنشاء مثيل لفئة #JFXPanel إلى تشغيل JavaFX وقت تشغيل بشكلٍ ضمني. بعد إنشاء واجهة المستخدم الرسومية ، قم باستدعاء طريقة initFX لإنشاء مشهد JavaFX على مؤشر ترابط تطبيق JavaFX....وذلك على النحو التالى :
وهكذا يمكنك تشغيل تطبيقات JAVAFX فى تطبيقات JAVA SWING بشكل ضمنى ....و المثال بالكامل على النحو التالى :
حيث توفر 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
شرح موفق ....شكرا زهراء
السنى- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 249
النقاط : 464
التقيم : 25
الجنس :
رد: [Swing] إضافة محتوى JavaFX إلى تطبيق Swing
شكرا جزيلا اين انتى استاذة
RANA- .....
- تاريخ التسجيل : 01/08/2013
المساهمات : 79
النقاط : 124
التقيم : 3
الدولة :
الجنس :
رد: [Swing] إضافة محتوى JavaFX إلى تطبيق Swing
RANA كتب:
شكرا جزيلا اين انتى استاذة
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: واجهة المستخدم الرسومية Java Swing
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
» شركة تنظيف مسابح بالرياض
» "بروتين بعد التكميم فوائد البروتين بعد التكميم بروتين بودر بعد التكميم"
» اشهر نسخ واتساب بلس 2023 whatsapp plus
» متجر مجوهرات دير: إشراقة الذهب الخالص
» صراف صينى مقاس57*40
» فلاي تورز: اكتشف عالمًا من السفر والسياحة المثيرة
» متجر yallaa kids : مصدر الإبداع والتعلم للأطفال
» افضل تمويل
» "اقوي عروض المساج "