Swingطريقة إنشاء JOptionPane
يمثل Confirm Dialog
المثال التالي يعلمك طريقة إظهار Confirm Dialog. كل زر يظهر Confirm Dialog مختلف.
إضافةً إلى ذلك ستتعلم كيف تنفذ أوامر معينة بناءاً على كل زر موجود في الـ Confirm Dialog في حال قام المستخدم بالنقر عليه.
مثال
import javax.swing.JFrame; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JOptionPane; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class Main { public static void main(String[] args) { JFrame frame = new JFrame("JOptionPane demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس frame.setSize(400, 250); // هنا قمنا بتحديد حجم النافذة. عرضها 400 و طولها 250 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج frame.setLayout(null); // في النافذة بنفسنا Buttons لذلك سنقوم بتحديد مكان الـ Layout Manager أي لم نستخدم أي null هنا وضعنا // واحد Label و Buttons هنا قمنا بتعريف ثلاثة JButton btn1 = new JButton("Delete your history"); JButton btn2 = new JButton("Do you like programming"); JButton btn3 = new JButton("Exit"); JLabel label = new JLabel("Here we display user interactions"); // Frame هنا قمنا بتحديد موقع و حجم جميع الأشياء التي سنضيفها في الـ btn1.setBounds(95, 20, 200, 30); btn2.setBounds(95, 60, 200, 30); btn3.setBounds(95, 100, 200, 30); label.setBounds(95, 150, 200, 30); // Frame هنا قمنا بإضافة جميع الأشياء التي قمنا بتعريفها في الـ frame.add(btn1); frame.add(btn2); frame.add(btn3); frame.add(label); // مرئية Frame هنا جعلنا الـ frame.setVisible(true); // btn1 عند النقر على الـ Confirm Dialog هنا قلنا أنه سيتم إظهار btn1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // result ثم تخزين قيمة الزر الذي نقر عليه المستخدم في المتغير Confirm Dialog سيتم إظهار int result = JOptionPane.showConfirmDialog( frame, "You are going to delete you history.\nAre you sure?", "Delete History", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE ); // result على أساس القيمة التي تم تخزينها في المتغير label هنا سيتم تغيير نص الـ switch (result) { case JOptionPane.YES_OPTION: label.setText("User click: Yes"); break; case JOptionPane.NO_OPTION: label.setText("User click: No"); break; case JOptionPane.CANCEL_OPTION: label.setText("User click: Cancel"); break; case JOptionPane.CLOSED_OPTION: label.setText("User click: Close"); break; } } }); // btn2 عند النقر على الـ Confirm Dialog هنا قلنا أنه سيتم إظهار btn2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // result ثم تخزين قيمة الزر الذي نقر عليه المستخدم في المتغير Confirm Dialog سيتم إظهار int result = JOptionPane.showConfirmDialog( frame, "Do you like programming?", "Question", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE ); // result على أساس القيمة التي تم تخزينها في المتغير label هنا سيتم تغيير نص الـ switch (result) { case JOptionPane.YES_OPTION: label.setText("User click: Yes"); break; case JOptionPane.NO_OPTION: label.setText("User click: No"); break; case JOptionPane.CLOSED_OPTION: label.setText("User click: Close"); break; } } }); // btn3 عند النقر على الـ Confirm Dialog هنا قلنا أنه سيتم إظهار btn3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // result ثم تخزين قيمة الزر الذي نقر عليه المستخدم في المتغير Confirm Dialog سيتم إظهار int result = JOptionPane.showConfirmDialog( frame, "Close The program now?", "Warning", JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE ); // result على أساس القيمة التي تم تخزينها في المتغير label هنا سيتم تغيير نص الـ switch (result) { case JOptionPane.OK_OPTION: System.exit(0); break; case JOptionPane.CANCEL_OPTION: label.setText("User click: Cancel"); break; case JOptionPane.CLOSED_OPTION: label.setText("User click: Close"); break; } } }); } }
ستظهر لك النافذة التالية عند التشغيل.
كل زر يظهر Confirm Dialog مختلف في المحتوى و الأيقونة.