مرجع
آخر الزيارات

حدث (حوسبة)

481 كلمة•0 مشاهدة•🗒️ منذ 16 ساعة
باختصار: التعامل مع الحدث أو معالجة الأحداث في الجافا (Event Handling) هو من الأساسيات المهمة لبرامج مع واجهة المستعمل الرسومية. تجد هنا «أساسيات التعامل مع الحدث» و«;(button.addActionListener(listener».
المحتويات
  1. أساسيات التعامل مع الحدث
  2. ;(button.addActionListener(listener

في البداية، التعامل مع الحدث أو معالجة الأحداث في الجافا (Event Handling) هو من الأساسيات المهمة لبرامج مع واجهة المستعمل الرسومية. لتنفيذ واجهات المستعمل، يجب عليك السيطرة على الطريقة التي يعالج جافا فيها الأحداث. هنا سترى كيفية التقاط الأحداث من مكونات واجهة المستعمل وأجهزة الإدخال. علينا كذلك أن تظهر لك كيفية العمل مع الإجراءات، واتباع نهج أكثر تنظيما لمعالجة أحداث العمل. ونتناول فيما يلي مزيدًا من التفاصيل.

أساسيات التعامل مع الحدث

ومن جهة أخرى، هذه الصورة تبين العلاقة بين مصادر الحدث والمستمعين "Relationship between event sources and listeners":-

ومن ناحية أخرى، يمكن لمصادر الحدث "event sources" مختلفة تنتج أنواع مختلفة من الأحداث. مثلًا، يمكن للزر إرسال ( ActionEvent object)، في حين نافذة يمكن إرسال ( WindowEvent object).

وعلى صعيد آخر، مصادر الحدث event sources" لها الأساليب التي تسمح لك لتسجيل المستمعين الحدث "event listeners" معهم. عندما يحدث الحدث في المصدر، المصدر يرسل إشعار من هذا الحدث لكافة الكائنات المستمع "listener objects" التي تم تسجيلها لهذا الحدث.

وعلى صعيد آخر، يرسل مصدر الحدث "event source" كائنات الحدث "object event"لجميع المسجلين (listeners ) عند وقوع هذا الحدث.

ومن جهة أخرى، الكائنات المستمع "listener objects " ثم سوف تستعمل المعلومات لكائن الحداث "event object" لتحديد رد فعلهم لهذا الحدث.

وفي السياق ذاته، أي بيئة تشغيل تدعم "GUIs" تقوم باستمرار بمراقبة الأحداث مثل النقر على لوحة المفاتيح أو نقرات الفأرة الضوئية .تقومم تقارير بيئة التشغيل تسجيل أو إرسال الأحداث إلى البرامج التي قامت بتشغيلها. ثم يقرر كل برنامج ما، إذا كان أي شيء يفعله ردا على هذه الأحداث.

إضافةً إلى ذلك، كما هو متوقع في "object-oriented language" مثل جافا، يتم تغليف المعلومات حول الحدث في كائن الحدث"event object". في جافا، كافة كائنات الحدث هي "derive " من"class " هو (java.util.EventObject). بالطبع، هناك أقسام فرعية "subclasses " لكل نوع الحدث، مثل (ActionEvent) و(WindowEvent).

من جهة ثانية، كائن المستمع"listener object" هو "instance " ل"class "التي تنفذ واجهة خاصة تسمى (naturally enough) واجهة المستمع" listener interface".

علاوةً على ذلك، في حدود الأحداث التي يعرف عنها"AWT" ، يمكنك التحكم تماما كيف تنتقل الأحداث من مصادر الحدث "event sources" (مثل الأزرار أو التمرير) إلى المستمعين للحدث"event listeners". يمكنك تعيين أي كائن"object " ليكون حدثا المستمع.

  • وفيما يلي مثال (specifying a listener) :
  • ; .... = ActionListener listener
  • ;("JButton button = new JButton ("Ok

في هذا الإطار، وخلاصة القول، وهنا لمحة عامة عن كيفية التعامل مع الحدث في ( AWT ) يعمل:

وفي السياق ذاته، مصدر الحدث "event source"هو كائن"object" يمكن تسجيل كائن المستمع"listener objects" وإرسالها ككائن الحدث"event objects".

;(button.addActionListener(listener

في هذا الإطار، متى قام المستعمل بالنقر فوق الزر، (JButton object ) بإنشاء ( ActionEvent object ) ويقوم باستدعاء listener.actionPerformed (الحدث)، ويمر هذا الكائن الحدث "event object". مصدر حدث " event source" مثل زر يمكن أن يكون لديه أكثر من " listeners". في هذه الحالة الزر يقوم باستدعاء (actionPerformed method) لجميع listener كلما قام المستعمل بالنقر فوق الزر.

وفي هذا السياق، الآن يتم إعلام الكائن المستمع "listener object" متى حدث عمل الحدث"action event" في زر.و لأزرار كما قد تتوقع عمل الحدث هو انقر فوق زر.

وفي هذا الصدد، هذه صوره تظهر التفاعل بين مصدر الحدث "event source"، الحدث المستمع"event listener"، وكائن الحدث"event object".

كذلك، لتنفيذ واجهة (ActionListener)،(listener class) يجب أن يكون لديها (method ) تسمى (actionPerformed) الذي يتلقى كائن ( ActionEvent object ) ك(parameter).

مصادر

ما رأيك في هذه المقالة؟

📝 هل في هذه المقالة خطأ؟

إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.