» נושאי לימוד
» נושאי לימוד
יום שני 29 באפריל 2024
דיון באובייקטי Listner מרובים
דף ראשי  מתקדמים  Creating, Trapping, and Processing Custom Event Types  דיון באובייקטי Listner מרובים גרסה להדפסה

 

דיון באובייקטי  Listner מרובים

 

מודל נציגות האירוע יכולה לתמוך ברישום באובייקטי  Listner מרובים באובייקט מקור event-generating  אחד. המודל אף יכול לתמוך ברישום של אובייקטים ממחלקת  Listner  יחידה של event-generating. לבסוף המודל יכול לתמוך גם במגוון שילובים של השניים.

 

בשיעור קודם על “program-generateg events”, למדנו איך להשתמש במתודת ה add()  של מחלקת AWTEventMulticaster כדי ליצור  ולשמר רשימה של אובייקטי Listner רשומים. מתודה זו תומכת ביכולת לרשום אובייקטי Listner מרובים על קובץ מקור event-generating יחיד. כשאתה פונה אל מתודה לשיגור אירוע (למשל actionPerformed()) בהתייחסות לרשימה, האירוע משוגר אוטומטית לכל אובייקט Listner ברשימה.

 

לצערנו, אי אפשר להשתמש במתודת ה add() של מחלקת AWTEEventMulticaster באופן ישיר על מנת לשמר רשימה של אובייקטי Listener רשומים, עבור סוג אירוע חדשת כיוון שאין גירסת העמסת אופרטורים של מתודת הadd() שחתימתה מתאימה לסוג האירוע החדש.

 

דרך אחת ליצור ולשמר רשימת אובייקטי Listner  כזו היא להתחיל בתרגיל  תיכנות של מבני נתונים ברשימת עיבוד.  מאחר ומבני נתונים אינם עיקר שיעור זה החלטתי לא לנקוט בגישה זו. אם ברצונך לראות כמה דוגמאות קוד המראות איך ליצור ולשמר רשימת אובייקטים רשומים משלך במצב דומה לזה, עבור לפרק 15 בספר Inside Java .

גישה נוספת שיכולה לעבוד, היא ליצור תת מחלקה של מחלקת   AWTEventMulticaster ולהעמיס את מתודת add(). למתודה תהיה חתימה שתתאים לסוג האירועים החדש, כמובן שגוף המתודה שנעמיס עדיין יצטרך לספק את הקוד לעיבוד הרשימה, כך שזו תוכל להעשות מורכבת יותר. (אם אני אמצא את הזמן אני אנסה לעשות זאת ולעדכן את השיעור מאוחר יותר).

 

בינתיים עיקר שיעור זה על סוגי אירועים טיפוסיים יכולה להיות מומחשת במידה מספקת ע"י הגבלת מספר אובייקטי Listner, לאובייקט אחד עבור רשימת רישום אובייקטים. הגבלה זו קרוב לוודאי תספק אחוז סביר מהמקרים בעולם האמיתי. לכן החלטתי להמנע מסיבוך קוד ה list-processing בתוכנית לדוגמא שבשיעור זה, ע"י הגבלת מספר אובייקטי ה Listner, כפי שצויין קודם.

 31-10-03 / 14:20  נוצר ע"י רונית רייכמן  בתאריך 
 Creating, Trapping, and Processing Custom Event Types - הקודםהבא - תוכנית לדוגמא 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 3