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

Swingالإنترفيس WindowListener

يستخدم هذا الإنترفيس للتنبه لأي شيء يحدث للنافذة مثل عند تصغيرها, تكبيرها, فتحها, خروجها, ناشطة, غير ناشطة.

الإنترفيس WindowListener يحتوي على خمس دوال يجب أن تفعل لها Override عند إنشاء كائن منه:

  • الدالة windowOpened(WindowEvent e): يتم إستدعاءها بعد أن يتم فتح النافذة.
  • الدالة windowClosing(WindowEvent e): يتم إستدعاءها أثناء إغلاق النافذة
  • الدالة windowClosed(WindowEvent): يتم إستدعاءها بعد أن يتم إغلاق النافذة.
  • الدالة windowIconified(WindowEvent): يتم إستدعاءها بعد أن يتم إخفاء النافذة بالنقر على زر التصغير الموجود أعلاها.
  • الدالة windowDeiconified(WindowEvent e): يتم إستدعاءها بعد أن يتم إظهارها من جديد.
  • الدالة windowActivated(WindowEvent): يتم إستدعاءها في حال كانت النافذة ناشطة, أي في حال لم يكن هناك أي نافذة أخرى أو تطبيق مفتوح فوقها.
  • الدالة windowDeactivated(WindowEvent e): يتم إستدعاءها في حال كانت النافذة غير ناشطة, أي في حال كان هناك نافذة أخرى أو تطبيق مفتوح فوقها.

مثال

Main.java
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class Main {
public static void main(String[] args) {
// أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس
JFrame frame = new JFrame("WindowListener Demo");
// هنا قلنا أنه كلما تفاعل المستخدم مع النافذة سيتم إظهار الحدث الذي فعله كرسالة
frame.addWindowListener(new WindowListener() {
@Override
public void windowOpened(WindowEvent e) {
JOptionPane.showMessageDialog(frame, "Event: Window Opened");
}
@Override
public void windowClosing(WindowEvent e) {
JOptionPane.showMessageDialog(frame, "Event: Window Closing");
}
@Override
public void windowClosed(WindowEvent e) {
}
@Override
public void windowIconified(WindowEvent e) {
JOptionPane.showMessageDialog(null, "Event: Window Iconified");
}
@Override
public void windowDeiconified(WindowEvent e) {
JOptionPane.showMessageDialog(null, "Event: Window Deiconified");
}
@Override
public void windowActivated(WindowEvent e) {
}
@Override
public void windowDeactivated(WindowEvent e) {
}
});
frame.setSize(300, 300); // هنا قمنا بتحديد حجم النافذة. عرضها 300 و طولها 300
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
frame.setVisible(true); // هنا جعلنا النافذة مرئية
}
}
import javax.swing.JFrame; import javax.swing.JOptionPane; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; public class Main { public static void main(String[] args) { // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس JFrame frame = new JFrame("WindowListener Demo"); // هنا قلنا أنه كلما تفاعل المستخدم مع النافذة سيتم إظهار الحدث الذي فعله كرسالة frame.addWindowListener(new WindowListener() { @Override public void windowOpened(WindowEvent e) { JOptionPane.showMessageDialog(frame, "Event: Window Opened"); } @Override public void windowClosing(WindowEvent e) { JOptionPane.showMessageDialog(frame, "Event: Window Closing"); } @Override public void windowClosed(WindowEvent e) { } @Override public void windowIconified(WindowEvent e) { JOptionPane.showMessageDialog(null, "Event: Window Iconified"); } @Override public void windowDeiconified(WindowEvent e) { JOptionPane.showMessageDialog(null, "Event: Window Deiconified"); } @Override public void windowActivated(WindowEvent e) { } @Override public void windowDeactivated(WindowEvent e) { } }); frame.setSize(300, 300); // هنا قمنا بتحديد حجم النافذة. عرضها 300 و طولها 300 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج frame.setVisible(true); // هنا جعلنا النافذة مرئية } }

ستظهر لك الرسالة التالية فوق النافذة عند التشغيل.

مثال يشرح طريقة تعريف الحدث WindowListener في جافا

ستظهر لك الرسالة التالية فوق النافذة قبل أن يتم إغلاق النافذة مباشرةً.

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة