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

الإنترفيس 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(30506025)// frame في الـ nameLabel هنا قمنا بتحديد حجم و موقع الكائن
  20. nameField.setBounds(1005015025)// frame في الـ nameField هنا قمنا بتحديد حجم و موقع الكائن
  21. passLabel.setBounds(30906025)// frame في الـ passLabel هنا قمنا بتحديد حجم و موقع الكائن
  22. passField.setBounds(1009015025)// 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(300200)// هنا قمنا بتحديد حجم النافذة. عرضها 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