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

Swingطريقة إنشاء JDialog و إظهاره عند النقر على زر

المثال التالي يعلمك طريقة إنشاء كلاس خاص يمثل Dialog له محتوى بسيط.
سنقوم بإظهار الـ Dialog عند النقر على زر Open Dialog في الـ Frame.


مثال

CustomDialog.java
import javax.swing.JFrame;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class CustomDialog {
// JButton و JLabel و JDialog هذا الكلاس يحتوي على
private JDialog dialog;
private final JLabel label;
private final JButton button;
// التي نريده أن يظهر بداخلها Frame هنا قلنا أنه عند إنشاء كائن من هذا الكلاس يجب أن نمرر له الـ
public CustomDialog(JFrame f) {
// Dialog و تعريف الأشياء التي سنضيفها في الـ Frame بالـ Dialog هنا قمنا بربط الـ
dialog = new JDialog(f);
label = new JLabel("This is a custom dialog");
button = new JButton("close");
// Dialog هنا قمنا بتحديد موقع و جميع الأشياء التي سنضيفها في الـ
label.setBounds(40, 50, 150, 30);
button.setBounds(210, 50, 70, 30);
// Dialog هنا قمنا بتحديد بعض خصائص الـ
dialog.setLocationRelativeTo(f);
dialog.setLayout(null);
dialog.setSize(340, 170);
dialog.setTitle("Custom Dialog");
dialog.setModal(false);
// Dialog بداخل الـ button و الـ label هنا قمنا بوضع الـ
dialog.add(label);
dialog.add(button);
// button عند النقر على الـ Dialog هنا قلنا أنه سيتم إخفاء الـ
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dialog.setVisible(false);
}
});
}
// Dialog هنا قمنا ببناء دالة لإظهار الـ
public void show() {
dialog.setVisible(true);
}
// Dialog هنا قمنا ببناء دالة لإخفاء الـ
public void hide() {
dialog.setVisible(false);
}
}
import javax.swing.JFrame; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class CustomDialog { // JButton و JLabel و JDialog هذا الكلاس يحتوي على private JDialog dialog; private final JLabel label; private final JButton button; // التي نريده أن يظهر بداخلها Frame هنا قلنا أنه عند إنشاء كائن من هذا الكلاس يجب أن نمرر له الـ public CustomDialog(JFrame f) { // Dialog و تعريف الأشياء التي سنضيفها في الـ Frame بالـ Dialog هنا قمنا بربط الـ dialog = new JDialog(f); label = new JLabel("This is a custom dialog"); button = new JButton("close"); // Dialog هنا قمنا بتحديد موقع و جميع الأشياء التي سنضيفها في الـ label.setBounds(40, 50, 150, 30); button.setBounds(210, 50, 70, 30); // Dialog هنا قمنا بتحديد بعض خصائص الـ dialog.setLocationRelativeTo(f); dialog.setLayout(null); dialog.setSize(340, 170); dialog.setTitle("Custom Dialog"); dialog.setModal(false); // Dialog بداخل الـ button و الـ label هنا قمنا بوضع الـ dialog.add(label); dialog.add(button); // button عند النقر على الـ Dialog هنا قلنا أنه سيتم إخفاء الـ button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { dialog.setVisible(false); } }); } // Dialog هنا قمنا ببناء دالة لإظهار الـ public void show() { dialog.setVisible(true); } // Dialog هنا قمنا ببناء دالة لإخفاء الـ public void hide() { dialog.setVisible(false); } }

Main.java
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Main {
public static void main(String[] args) {
// هنا قمنا بإنشاء النافذة مع تحديد بعض خصائصها
JFrame frame = new JFrame("JDialog demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس
frame.setSize(400, 200); // هنا قمنا بتحديد حجم النافذة. عرضها 320 و طولها 300
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
frame.setLayout(null); // في النافذة بنفسنا Tabbed Pane لذلك سنقوم بتحديد مكان الـ Layout Manager أي لم نستخدم أي null هنا وضعنا
// Panels هنا قمنا بتعريف ثلاثة
JButton button = new JButton("Open Dialog");
button.setBounds(40, 80, 130, 30);
frame.add(button);
// منهم Panel هنا قمنا بإعطاء لون خلفية لكل
CustomDialog dialog = new CustomDialog(frame);
// مرئية Frame هنا جعلنا الـ
frame.setVisible(true);
// button عند النقر على الـ Input Dialog هنا قلنا أنه سيتم إظهار
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dialog.show();
}
});
}
}
import javax.swing.JFrame; import javax.swing.JButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class Main { public static void main(String[] args) { // هنا قمنا بإنشاء النافذة مع تحديد بعض خصائصها JFrame frame = new JFrame("JDialog demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس frame.setSize(400, 200); // هنا قمنا بتحديد حجم النافذة. عرضها 320 و طولها 300 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج frame.setLayout(null); // في النافذة بنفسنا Tabbed Pane لذلك سنقوم بتحديد مكان الـ Layout Manager أي لم نستخدم أي null هنا وضعنا // Panels هنا قمنا بتعريف ثلاثة JButton button = new JButton("Open Dialog"); button.setBounds(40, 80, 130, 30); frame.add(button); // منهم Panel هنا قمنا بإعطاء لون خلفية لكل CustomDialog dialog = new CustomDialog(frame); // مرئية Frame هنا جعلنا الـ frame.setVisible(true); // button عند النقر على الـ Input Dialog هنا قلنا أنه سيتم إظهار button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { dialog.show(); } }); } }

عند النقر على زر Open Dialog سيظهر لك الـ Dialog كما في الصورة التالية.

طريقة إنشاء JDialog و جعله يظهر عند النقر على زر في جافا