Swingطريقة إنشاء JDialog
و إظهاره عند النقر على زر
المثال التالي يعلمك طريقة إنشاء كلاس خاص يمثل Dialog له محتوى بسيط.
سنقوم بإظهار الـ Dialog عند النقر على زر Open Dialog في الـ Frame.
مثال
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() { 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.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() { public void actionPerformed(ActionEvent e) { dialog.show(); } }); } }
عند النقر على زر Open Dialog سيظهر لك الـ Dialog كما في الصورة التالية.