لمحة جافاوية 50: مؤشر الكتابة في حقل معين من الشاشة

السلام عليكم

أول أمس كنت مجتمع مع الأخ عبده اجتماعاً خاصاً
الاجتماع يتعلق بكيفية تسيير الأعمال في المدونة
سيخطر على بالكم السؤال التالي
مادخل الأخ عبده في الموضوع؟
على كل حال كنت أظن هذا في الماضي
لكن بعد الاجتماع الأخير الذي تم بيني وبين الأخ عبده
طبعاً حضوري كان تحت تهديد السلاح
-بيني وبينكم لا أعلم لماذا يحتاج عبده السلاح لو ضربني كفاً واحداً لحضرت الاجتماع صاغراً-
على أية حال الاجتماع كان جميل جداً
أخبرني فيه الأخ عبده أنه يريد أن يحصل على تدوينتين بدل من تدوينة واحدة كما اتفقنا المرة السابقة
طبعاً مبدئياً أخبرته بأن أعطيته التدوينة التي أعطيته كرماً مني
وأنا قلت هذه الكلمات ولم أعد أدري شيئاً عن الوجود
صحيت بعد ساعة كاملة
لأجد نفسي كتبت له توكيلاً كاملاً عن المدونة يشمل البيع والتأجير
على أية حال يفترض أن لا أكتب هنا أي شيء
لكني أخبرته أني أريد توديعكم فسمح لي بمئة كلمة لا أكثر ولا أقل

أنا عبده الدب أحييكم في مدونتي الجديدة
لا أريد أية مشاكل هنا
يجب أن تلتزموا بالنظام
أية محاولات لانقلابات تلاقى بالإعدام لكل المشاركين في المحاولة
حتى السائقين لن ينجو من الإعدام
على كل دعوكم من مسائل الإدارة
ولنتكلم عن مواضيع أخرى تهمكم
(ستكون مواضيع غبية كالعادة)
بوم بوم طاخ طيخ
(بالتأكيد تهمنا كنت أمزح يا أخ عبده)
لا أدري لماذا اعتقدت لوهلة أنك كنت تعنيها
على كل حال ربما تكون صادق
في بعض البرامج إذا كان البرنامج فعال
فإننا نحتاج إلى وضع مؤشر الكتابة في مكون معين من النافذة
مثال على ذلك
برنامج المحادثة عندما تكون الشاشة الخاصة به فعالة
فإنه يفضل أن يكون مؤشر الكتابة في الحقل الخاص بالكتابة (أي مكون component كان)
وإلا سيضطر المستخدم من استخدام الفأرة وهو أمر غير محبذ بالنسبة للمستخدمين سريعي الطباعة
ممممممممممم طيب ما الحل؟
الحل يكمن في أن نقوم بعمل حدث من نوع FocusListner
لكي اختصر عليك الموضوع هذه هي الشيفرة

//Make textField get the focus whenever frame is activated.
frame.addWindowFocusListener(new WindowAdapter() {
    public void windowGainedFocus(WindowEvent e) {
        textField.requestFocusInWindow();
    }
});

بهذا نكون انهينا درس اليوم
هل لديكم أي أسئلة؟
(أستاذ عبده ما معنى الدالة requestFocusInWindow)
لا تتظاهر بالبراءة يا علاء فأنت تحاول أن تقول عبده يحفظ بدون فهم
وهو غير جدير بأن يكون الأستاذ هنا
على كل حال هذه الدالة تقوم بطلب التركيز من النافذة على المكون
ليحصل ذلك يشترط أن يكون المكون وجميع آباؤه يتمتعون بثلاث صفات
1- قابل للعرض displayable
-بمعنى أنها enabled-
2- قابل للتركيز focusable
-لكي تجعل مكون قابل للتركيز استخدم الدالة setFocusable-
3- مرئي visible ويستثنى من هذا الشرط النافذة الرئيسية
-بمعنى أن المكون قد يحصل على التركيز والنافذة الموجود فيها هذا المكون غير معروضة-
أية أسئلة أخرى؟

أراكم على خير
تحياتي

المراجع:
1- مقالة على موقع صن بعنوان How to Use the Focus Subsystem

http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html

Tags: , , , , , , ,

2 Responses to “لمحة جافاوية 50: مؤشر الكتابة في حقل معين من الشاشة”

  1. abuouf قال:

    جزاك الله خير -درس خفيف ومفيد

  2. admin قال:

    شكراً على المساندة أخ عبدالله

    تحياتي

Leave a Reply