» נושאי לימוד
» נושאי לימוד
יום שני 29 באפריל 2024
כיצד ליצור ולהפיץ אירוע
דף ראשי  מתקדמים   אירועים הנוצרים על-ידי תוכנית  כיצד ליצור ולהפיץ אירוע גרסה להדפסה

כיצד ליצור ולהפיץ אירוע

תהליך יצירה והפצה של אירוע הוא למרבה הפלא פשוט ביותר.

אתה פשוט:

-   יוצר מופע לאובייקט של המחלקה Event המכיל את המידע המתאים בשדות שלו ו-

-   מפעיל את המתודה ()deliverEvent, תוך העברת אובייקט ה- Event  כפרמטר.

החלק היחיד שדורש חשיבה של ממש הוא ההחלטה מה להכניס לכל אחד מהשדות של האובייקט. הפונקציות הבונות של המחלקה Event מוצגות להלן (לפי תיעוד API 1.0.2).

*****************************************************************************************************

public Event(Object  target, int  id, Object  arg);

public Event(Object  target, long  when, int id,

               int  x, int  y, int  key, int  modifiers);

public Event(Object  target, long  when, int id,

                         int  x, int  y, int  key,

                         int  modifiers, Object  arg);

 

****************************************************************************************************

אין הכרח להכניס מידע תקף בכל אחד מן השדות באובייקט. כל שעליך לעשות הוא להכניס מידע לאותם שדות שישמשו את המטפל באירועים עבור האירוע.

שלוש הגירסאות המועמסות האלה של הפונקציה הבונה מאפשרות לך להכניס מידע בתת-קבוצות נבחרות  של שדות כדי לתמוך במטפל באירועים שיופעל כאשר אובייקט ה- Event  מופץ.

במקרים מסוימים באפשרותך להכניס מידע "בדוי" בשדה אם אתה יודע שהמטפל באירועים לא יעשה שימוש במידע מהשדה הזה.

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

 

לשם חזרה על חומר שלמדנו משיעור קודם, לפי תיעוד ה-API 1.0.2 , מפורטים להלן השדות של האובייקט ומטרותיהם:

-  arg - ארגומנט שרירותי של האירוע. הערך של שדה זה תלוי בטיפוס האירוע.

-  clickCount - עבור אירועי MOUSE_DOWN, שדה זה מציין את מספר הלחיצות הרציפות. באירועים אחרים, הוא שווה אפס.

-     evt - האירוע הבא. שדה זה מוגדר כאשר מכניסים אירועים לרשימה מקושרת.

-   id   - טיפוס האירוע.

-     המקש עליו לחצו באירוע של לוח המקשים.

- modifires      מצב מקשי ה- modifier

-     target  רכיב המטרה. מציין את הרכיב שעליו הופעל האירוע או שאליו משויך האירוע.

-     when  חותמת הזמן של האירוע.

-     x  קואורדינטת ה- x  של האירוע.

-     y  קואורדינטת ה- y  של האירוע. 
לכן, כדי ליצור ולהפיץ אירוע:

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

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

    שבפונקציות הבונות, ו-

-   הפעל את המתודה ()deliverEvent כדי להפיץ את האירוע.

זכור כי המתודה postEvent() יכולה גם היא לשמש למטרה זו, ואני אשאיר לסטודנטים את המשימה של גילוי התכונות הדימיון, ההבדלים, והקשר בין שתי המתודות האלה.

רמז: עיין בתיעוד ה- API מתוך JavaSoft.

 

שדות קריטיים (Critical Fields)

 

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

-  השדה target

-  השדה id

שדה ה id משמש לציון טיפוס האירוע באמצעות הקבועים התוויים המוגדרים במחלקה Event שהוצגו באחד בשיעורים הקודמים. (אמנם לא מומלץ, אך ניתן להשתמש בערכי integer כדי לציין את טיפוס האירוע אם אתה יודע את הערך הנכון עבור ה- integer).

שדה ה- target משמש את המערכת כדי להחליט למי מהרכיבים יישלח  אובייקט ה- Event.

לדוגמה, כדי לעשות הדמיה של לחיצה על רכיב Button  מסוים,

עליך ליצור אובייקט Event  מטיפוס ACTION_EVENT  

כשאובייקט ה- Button  הספציפי מצוין כ  target.

 29-11-03 / 18:55  עודכן ,  12-10-03 / 18:29  נוצר ע"י רונית רייכמן  בתאריך 
  אירועים הנוצרים על-ידי תוכנית - הקודםהבא - תוכנית הדגמה 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 3