الجامعات العربية
الإنترفيس FocusListener
الإنترفيس FocusListener , الإنترفيس FocusListener
الإنترفيس FocusListener , الإنترفيس FocusListener
الإنترفيس FocusListener , الإنترفيس FocusListener
الإنترفيس FocusListener , الإنترفيس FocusListener
الإنترفيس FocusListener , الإنترفيس FocusListener
المناهج السعودية
الإنترفيس FocusListener , الإنترفيس FocusListener
الإنترفيس FocusListener , الإنترفيس FocusListener
الإنترفيس FocusListener , الإنترفيس FocusListener
الإنترفيس FocusListener , الإنترفيس FocusListener
المناهج السعودية
الإنترفيس FocusListener يستخدم للإشارة إلى الشيء الحالي الذي يتفاعل معه المستخدم و الذي يمكنه التحكم به من خلال الكيبورد.
الإنترفيس FocusListener يحتوي على دالتين يجب أن تفعل لهما Override عند إنشاء كائن منه:
- الدالة focusGained(FocusEvent e): يتم إستدعاءها عندما يقوم المستخدم بالنقر داخل شيء.
- الدالة focusLost(FocusEvent e): يتم إستدعاءها عنما يقوم المستخدم بالنقر خارج الشيء الذي كان يتعامل معه.
مثال
- import java.awt.Color;
- import java.awt.event.FocusEvent;
- import java.awt.event.FocusListener;
- import javax.swing.JLabel;
- import javax.swing.JFrame;
- import javax.swing.JPasswordField;
- import javax.swing.JTextField;
- publicclass Main {
- publicstaticvoidmain(String[] args){
- JFrame frame = newJFrame(“FocusListener demo”); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس
- JLabel nameLabel = newJLabel(“Name”); // nameLabel إسمه Label هنا أنشأنا
- JLabel passLabel = newJLabel(“Password”); // passLabel إسمه Label هنا أنشأنا
- JTextField nameField = newJTextField(); // nameField إسمه Text Field هنا أنشأنا
- JPasswordField passField = newJPasswordField(); // passField إسمه Text Field هنا أنشأنا
- nameLabel.setBounds(30, 50, 60, 25); // frame في الـ nameLabel هنا قمنا بتحديد حجم و موقع الكائن
- nameField.setBounds(100, 50, 150, 25); // frame في الـ nameField هنا قمنا بتحديد حجم و موقع الكائن
- passLabel.setBounds(30, 90, 60, 25); // frame في الـ passLabel هنا قمنا بتحديد حجم و موقع الكائن
- passField.setBounds(100, 90, 150, 25); // frame في الـ passField هنا قمنا بتحديد حجم و موقع الكائن
- frame.add(nameLabel); // frame في الـ nameLabel هنا أضفنا الكائن
- frame.add(nameField); // frame في الـ nameField هنا أضفنا الكائن
- frame.add(passLabel); // frame في الـ passLabel هنا أضفنا الكائن
- frame.add(passField); // frame في الـ passField هنا أضفنا الكائن
- // خصيصاً لتغيير لون خلفية أي مربع نص يتعامل معه المستخدم حالياً fl أنشأنا هذا الكائن
- FocusListener fl = newFocusListener(){
- @Override
- publicvoidfocusGained(FocusEvent e){
- // هنا قلنا أنه سيتم تلوين خلفية مربع النص الحالي الذي يمكن الكتابة فيه بالأصفر
- e.getComponent().setBackground(Color.yellow);
- }
- @Override
- publicvoidfocusLost(FocusEvent e){
- // هنا قلنا أنه سيتم تلوين خلفية مربع النص الذي لم يعد يتفاعل معه المستخدم باللون الأبيض
- e.getComponent().setBackground(Color.white);
- }
- };
- nameField.addFocusListener(fl); // fl بالحدث nameField هنا ربطنا الكائن
- passField.addFocusListener(fl); // fl بالحدث nameField هنا ربطنا الكائن
- frame.setSize(300, 200); // هنا قمنا بتحديد حجم النافذة. عرضها 300 و طولها 200
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
- frame.setLayout(null); // لذلك قمنا بتحديد مكان كل شيء قمنا بإضافته في النافذة Layout Manager أي لم نستخدم أي null هنا وضعنا
- frame.setVisible(true); // هنا جعلنا النافذة مرئية
- }
- }
•ستظهر لك النافذة التالية عند التشغيل.
•لاحظ أنه دائماً سيتم تلوين لون خلفية الـ Text Field الحالي الذي تتفاعل معه بالأصفر.