الجامعات العربية

الإنترفيس FocusListener

الإنترفيس FocusListener , الإنترفيس FocusListener
الإنترفيس FocusListener , الإنترفيس FocusListener
الإنترفيس FocusListener , الإنترفيس FocusListener
الإنترفيس FocusListener , الإنترفيس FocusListener
الإنترفيس FocusListener , الإنترفيس FocusListener
المناهج السعودية

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

  • الدالة focusGained(FocusEvent e): يتم إستدعاءها عندما يقوم المستخدم بالنقر داخل شيء.
  • الدالة focusLost(FocusEvent e): يتم إستدعاءها عنما يقوم المستخدم بالنقر خارج الشيء الذي كان يتعامل معه.

مثال

Main.java

  1. import java.awt.Color;
  2. import java.awt.event.FocusEvent;
  3. import java.awt.event.FocusListener;
  4. import javax.swing.JLabel;
  5. import javax.swing.JFrame;
  6. import javax.swing.JPasswordField;
  7. import javax.swing.JTextField;
  8.  
  9. publicclass Main {
  10.  
  11. publicstaticvoidmain(String[] args){
  12.  
  13. JFrame frame = newJFrame(“FocusListener demo”); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس
  14. JLabel nameLabel = newJLabel(“Name”); // nameLabel إسمه Label هنا أنشأنا
  15. JLabel passLabel = newJLabel(“Password”); // passLabel إسمه Label هنا أنشأنا
  16. JTextField nameField = newJTextField(); // nameField إسمه Text Field هنا أنشأنا
  17. JPasswordField passField = newJPasswordField(); // passField إسمه Text Field هنا أنشأنا
  18.  
  19. nameLabel.setBounds(30, 50, 60, 25); // frame في الـ nameLabel هنا قمنا بتحديد حجم و موقع الكائن
  20. nameField.setBounds(100, 50, 150, 25); // frame في الـ nameField هنا قمنا بتحديد حجم و موقع الكائن
  21. passLabel.setBounds(30, 90, 60, 25); // frame في الـ passLabel هنا قمنا بتحديد حجم و موقع الكائن
  22. passField.setBounds(100, 90, 150, 25); // frame في الـ passField هنا قمنا بتحديد حجم و موقع الكائن
  23.  
  24. frame.add(nameLabel); // frame في الـ nameLabel هنا أضفنا الكائن
  25. frame.add(nameField); // frame في الـ nameField هنا أضفنا الكائن
  26. frame.add(passLabel); // frame في الـ passLabel هنا أضفنا الكائن
  27. frame.add(passField); // frame في الـ passField هنا أضفنا الكائن
  28.  
  29. // خصيصاً لتغيير لون خلفية أي مربع نص يتعامل معه المستخدم حالياً fl أنشأنا هذا الكائن
  30. FocusListener fl = newFocusListener(){
  31.  
  32. @Override
  33. publicvoidfocusGained(FocusEvent e){
  34. // هنا قلنا أنه سيتم تلوين خلفية مربع النص الحالي الذي يمكن الكتابة فيه بالأصفر
  35. e.getComponent().setBackground(Color.yellow);
  36. }
  37.  
  38. @Override
  39. publicvoidfocusLost(FocusEvent e){
  40. // هنا قلنا أنه سيتم تلوين خلفية مربع النص الذي لم يعد يتفاعل معه المستخدم باللون الأبيض
  41. e.getComponent().setBackground(Color.white);
  42. }
  43.  
  44. };
  45.  
  46. nameField.addFocusListener(fl); // fl بالحدث nameField هنا ربطنا الكائن
  47. passField.addFocusListener(fl); // fl بالحدث nameField هنا ربطنا الكائن
  48.  
  49. frame.setSize(300, 200); // هنا قمنا بتحديد حجم النافذة. عرضها 300 و طولها 200
  50. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
  51. frame.setLayout(null); // لذلك قمنا بتحديد مكان كل شيء قمنا بإضافته في النافذة Layout Manager أي لم نستخدم أي null هنا وضعنا
  52. frame.setVisible(true); // هنا جعلنا النافذة مرئية
  53.  
  54. }
  55.  
  56. }

•ستظهر لك النافذة التالية عند التشغيل.
•لاحظ أنه دائماً سيتم تلوين لون خلفية الـ Text Field الحالي الذي تتفاعل معه بالأصفر.

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

المصدر: الإنترفيس FocusListener – المناهج السعودية

مقالات ذات صلة

اترك رد

زر الذهاب إلى الأعلى

أنت تستخدم إضافة Adblock

برجاء دعمنا عن طريق تعطيل إضافة Adblock