Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux 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);
    }
 
}

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();
            }
        });
 
    }
 
}

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

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