معالجة الأحداث في Java: ما هذا وكيف يعمل؟
نشرت: 2020-03-21أي برنامج بواجهة مستخدم رسومية أو مستند إلى واجهة المستخدم الرسومية ، بما في ذلك تطبيق Java لنظام التشغيل Windows ، تحركه الأحداث. لكي يكون برنامج مثل تطبيق Java مفيدًا ، يلزم توفير استجابة للأوامر أو المدخلات من المستخدم. تحتوي تطبيقات Java على أحداث لالتقاط إجراءات المستخدم. قبل أن نناقش معالجة الأحداث في Java ، لنبدأ بمناقشة الأحداث.
جدول المحتويات
ما هو الحدث؟
الأحداث لها نفس المعنى والأهمية في كل لغة برمجة. إنها تأثيرات خارجية يتحكم فيها المستخدم ، وتجعل تطبيقك يتصرف بما يتماشى مع الشرط المحدد مسبقًا الموضوعة لتسجيل استجابته لإجراءات المستخدم المختلفة. يمكن حتى تسمية الحدث بأنه كائن ينبض بالحياة عندما يحدث تغيير داخل واجهة المستخدم الرسومية.
تتضمن أمثلة الأحداث في Java كتابة الأحرف أو النص أو النقر فوق مربع تحرير وسرد أو النقر فوق زر أو أي إجراء آخر من جانب المستخدم. يؤدي أي إجراء من هذا القبيل إلى بدء حدث ، مما يؤدي بعد ذلك إلى إنشاء كائن الحدث ذي الصلة بهذا الحدث.
على سبيل المثال ، إذا قام المستخدم بإدخال بعض البيانات (إجراء المستخدم الذي يطلق حدثًا) ، فإن التطبيق ينتج مخرجات عن طريق وضع مربع حوار أو عرض المعلومات (كائن الحدث). تعد هذه السلوكيات المتعلقة بالحدث جزءًا من آلية معالجة الأحداث في Java وهي موجودة في مكتبة Swing GUI. من المهم ملاحظة أنه يجب ربط مصدر كل حدث ومستمع الحدث. إذا لم يكن الأمر كذلك ، فإن بدء الحدث لن يؤدي إلى اتخاذ أي إجراء.
لماذا يجب أن يكون البرنامج أو التطبيق مدفوعًا بالأحداث؟
قبل ظهور معالجة الحدث في الصورة ، كان على البرنامج جمع جميع معلومات المستخدم بنفسه لمعرفة ما كان يفعله في وقت معين. هذا يعني أنه بعد التشغيل أو التهيئة ، كان البرنامج دائمًا في حلقة تكرار كبيرة كانت تنتظر من المستخدم القيام بشيء ما.
لذلك ، كان البرنامج يبحث عن أي إجراء - من الضغط على زر إلى حركة شريط التمرير. بعد أن علمت بحدوث شيء ما من جانب المستخدم ، أعدت نفسها لتقديم الاستجابة المناسبة. يشار إلى هذا بالاقتراع. على الرغم من أن استطلاعات الرأي تنجز المهمة ، إلا أنها في أغلب الأحيان تبدو مهمة لا يمكن إدارتها وتستغرق وقتًا طويلاً.

قراءة: أسئلة وأجوبة مقابلة مطور Java
إذا اعتبرنا استخدامه لتطبيقات العصر الحديث ، فهو لا يلائم المتطلبات حقًا. هناك سببان رئيسيان يجعلان الاستقصاء غير مناسب للتطبيقات الحديثة - الاستقصاء يضع كل الأكواد المتعلقة بالحدث داخل حلقة التكرار الكبيرة ، والتفاعلات التي تحدث داخل هذا الموقع معقدة للغاية. أيضًا ، يجعل الاستقصاء البرنامج يدخل في حلقة لا تنتهي ، مما يؤدي إلى استنفاد دورات وحدة المعالجة المركزية دون أي ضمان لاتخاذ إجراء من المستخدم.
مضت مجموعة أدوات النافذة المجردة أو AWT إلى الأمام وأقامت ارتباطًا بنموذج عمل مختلف لحل المشكلة التي تمت مناقشتها أعلاه. هذا النموذج الجديد هو برمجة يحركها الحدث. مع AWT ، ليست هناك حاجة للبرنامج للبحث عن الأحداث التي ينشئها المستخدم. إنه وقت تشغيل Java الذي يقوم بهذه المهمة. إنه يلمح إلى البرنامج بمجرد حدوث الحدث. إنه يوفر موردًا قيمًا من الإرهاق ويتعامل مع تفاعل المستخدم بشكل أفضل.
ما هي معالجات الأحداث في Java وكيف تعمل؟
دعنا الآن نناقش الموضوع الأساسي الذي شرعنا في التعامل معه. كيف تعمل معالجة الأحداث في Java؟
كما ذكرنا سابقًا ، الأحداث هي إجراءات المستخدم أو التأثيرات الخارجية التي تجعل التطبيق يتصرف بطريقة معينة. في Java ، تكون مكونات AWT ، بما في ذلك مربع النص والزر وغيرهما ، مسؤولة عن توليد الأحداث. بمجرد إنشاء حدث ما ، يتعامل المستمع معه ويقوم بالإجراء المناسب.

تتألف معالجة الأحداث في Java من أربعة عناصر. يمكن حتى أن يطلق عليها معالجات الأحداث.
1. مصدر الحدث : مصدر الحدث الذي ينشئ حدثًا هو في الغالب مكون AWT. يمكنك تشغيل الأمر java.awt.component للتعرف على المكونات التي قد يكون لها أو لا يكون لها أي دور في توليد الأحداث. المكونات هي فئة فرعية لفئة المصدر الأصلية. يمكن أن تكون مصادر الأحداث أي شيء من مربعات النص ومربعات التحرير والسرد إلى الأزرار والمزيد.
قراءة: MVC Architecture في Java
2. فئات الأحداث : في Java ، هذه هي الفئات التي تمثل كل مكون تقريبًا له علاقة بتوليد الأحداث. وتسمى هذه أيضًا أنواع الأحداث. فيما يلي بعض فئات الأحداث الأكثر شيوعًا:
- ActionEvent : فئة الحدث أو نوع الحدث هذا يمثل حدثًا يتضمن النقر فوق عنصر رسومي ، مثل زر أو عنصر قائمة. المستمع المرتبط بهذه الفئة هو ActionListener.
- KeyEvent : تمثل فئة الحدث هذه حدثًا يتضمن الضغط على مفتاح وتحريره. المستمع المرتبط بهذه الفئة هو KeyListener.
- ContainerEvent : يمثل نوع الحدث هذا حدثًا يحدث مع حاوية واجهة المستخدم الرسومية. ترتبط هذه الفئة بأي حدث يتضمن إجراء المستخدم إضافة أو إزالة كائن (كائنات) من واجهة المستخدم الرسومية. المستمع ذو الصلة لهذه الفئة هو ContainerListener.
- MouseEvent : تمثل هذه الفئة جميع الأحداث التي تتضمن النقر بالماوس أو الضغط عليه. المستمع لهذه الفئة هو MouseListener.
- WindowEvent : فئة أو نوع الحدث هذا يمثل الأحداث التي تتضمن أي إجراء متعلق بالنافذة. يأتي إغلاق النافذة أو تنشيطها أو إلغاء تنشيطها ضمن هذه الفئة. المستمع ذو الصلة لهذه الفئة هو WindowListener.
3. مستمعي الأحداث : هذه هي واجهات Java التي توفر طرقًا مختلفة يمكن استخدامها في فئات مختلفة مطبقة. تتضمن وظيفة مستمعي الأحداث الاستماع إلى الأحداث ثم معالجتها بشكل مناسب عند حدوثها. يحتوي كل مكون في Java تقريبًا على مستمع مخصص يتعامل مع أي حدث يولده هذا المكون. يعالج ActionListener الأحداث التي تتضمن القوائم والأزرار وحقول النص والقوائم.
4. محولات الأحداث : إذا قدم برنامج ما عددًا كبيرًا جدًا من الأساليب المجردة بحيث يتعذر على المستمع تجاوزها ، فقد يصعب تجميعها. على سبيل المثال ، إذا أردنا إغلاق إطار ، فهناك سبع طرق مجردة لـ WindowListener نحتاج إلى تجاوزها. لتقليل التعقيد والتشفير الثقيل ، تحتوي Java على محولات للأحداث. محولات الأحداث تم تجاوزها بالفعل في الأساليب المجردة.
خاتمة
من المهم أن تتذكر أن مصادر الأحداث المتعددة والمستمعين يمكنهم التفاعل مع بعضهم البعض. لذلك ، يمكن معالجة أحداث متعددة تنتمي إلى نفس الفئة بواسطة مستمع واحد. هذا يعني أن مستمعًا واحدًا يمكنه التعامل مع كل تلك الأحداث التي تتضمن نفس المكونات التي تؤدي إجراءات مماثلة. على نفس المنوال ، يمكن معالجة حدث واحد من قبل أكثر من مستمع واحد ، فقط إذا كان تصميم البرنامج يسمح بذلك.

من المنطقي؟
نعم؟
رقم؟
تواصل معنا للتعرف على جلسة مكثفة حول التعامل مع الأحداث في جافا. لن تندم!
إذا كنت مهتمًا بمعرفة المزيد حول Java لتطوير الويب ، فتحقق من دبلوم PG upGrad & IIIT-B في تطوير البرامج الكامل المكدس المصمم للمهنيين العاملين ويقدم أكثر من 500 ساعة من التدريب الصارم ، وأكثر من 9 مشاريع ومهام ، حالة خريجي IIIT-B ، ومشاريع التخرج العملية العملية والمساعدة في العمل مع الشركات الكبرى.