» נושאי לימוד
» נושאי לימוד
יום שני 29 באפריל 2024
מתודת ()handleEvent
דף ראשי  מתקדמים  טיפול בארועים - ()handleEvent  מתודת ()handleEvent גרסה להדפסה

 

מתודה handleEvent()

 

המתודה handleEvent() היא פריט מופע (instance member) של המחלקה java.awt.Component. להלן הצהרה שלה:

 public boolean handleEvent (Event evt)

אתה יכול לדרוס את handleEvent() בתוכנית שלך כדי לטפל באירועים שבהם מעונינת התוכנית שלך.

אם תדרוס את handleEvent() בתוכנית שלך, אלא אם כן תטפל בכל האירועים האפשריים (מה שלא כ"כ סביר שתעשה), אתה צריך לקרוא למתודה handleEvent() של המחלקה המורישה  כדי שתטפל באירועים שאינם מטופלים על ידי התוכנית שלך לפני שאתה חוזר למערכת run-time של ג'אווה.

 

התנהגות ברירת המחדל.

לפי “Using Java, Special Edition” מהדורה שנייה מאת Joseph Weber :

התנהגות ברירת המחדל של המתודה handleEvent() מוגדרת על ידי הקוד הבא.

קוד זה מספק הסברים יותר מאשר המידע בתיעוד ה API במקרה המסוים הזה, לכן החלטתי להשתמש בו במקום המידע מתיעוד ה API. (אני מקווה שזה נכון).

התנהגות ברירת המחדל של handleEvent() (כפי שהקוד הבא מציין) היא:

- להוציא את שדה ה id  של אובייקט ה Event

- לבחון אותו כנגד 13 ערכי id שהוגדרו מראש ו-

- אם נמצאה התאמה, לקרוא עבור האירוע  לאחת המתודות המוגדרות מראש של מטפלי אירועים  

- אם לא נמצאה כל התאמה, handleEvent() מחזירה false ומסמלת למערכת run-time של ג'אווה 

  שהאירוע לא טופל כהלכה.

שים לב לכך שבשני מקרים שונים בswitch  שבקוד, יוצא ששני ערכי id שונים קוראים בסופו של דבר לאותו מטפל אירועים. מקרים אלה מודגשים ב bold.

מתודות אלה של מטפלי אירועים המוגדרות מראש  הן פשוט מתודות נוחות שלא עושות דבר במצב ברירת המחדל שלהן מלבד להחזיר false.

הן מיועדות לדריסה  כדרך נוחה יותר להתמודדות עם סוגים מסוימים של אירועים. אנו יכולים לדרוס אותן אם אנו מעונינים בכך, אבל זה כבר נושא לשיעור אחר.

ראוי לציין כי קיימים כ14- ערכי id אחרים המוגדרים כקבועים תוויים במחלקה Event שאינם נבחנים בגרסת ברירת המחדל של handleEvent().


/*File Event01.txt

This is Listing 19-12 from Using Java, Special Edition

by Joseph Weber, et al.

*/

public boolean handleEvent(Event evt) {

switch (evt.id) {

 case Event.MOUSE_ENTER:return mouseEnter(evt,evt.x,
                                                 evt.y);

 case Event.MOUSE_EXIT: return mouseExit(evt,evt.x,evt.y);

 case Event.MOUSE_MOVE: return mouseMove(evt,evt.x,evt.y);

 case Event.MOUSE_DOWN: return mouseDown(evt,evt.x,evt.y);

 case Event.MOUSE_DRAG: return mouseDrag(evt,evt.x,evt.y);

 case Event.MOUSE_UP: return mouseUp(evt, evt.x, evt.y);

 case Event.KEY_PRESS:

 case Event.KEY_ACTION: return keyDown(evt, evt.key);

 case Event.KEY_RELEASE:

 case Event.KEY_ACTION_RELEASE: return keyUp(evt,evt.key);

 case Event.ACTION_EVENT: return action(evt, evt.arg);

 case Event.GOT_FOCUS: return gotFocus(evt, evt.arg);

 case Event.LOST_FOCUS: return lostFocus(evt, evt.arg);

{//end switch

return false;

{

 

 

 29-11-03 / 17:56  עודכן ,  11-10-03 / 15:27  נוצר ע"י רונית רייכמן  בתאריך 
 טיפול בארועים - ()handleEvent - הקודםהבא - תוכנית הדגמה לטיפול באירועים 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 2