» נושאי לימוד
» נושאי לימוד
יום שני 29 באפריל 2024
תכנית לדוגמה עצמות-חשופות
דף ראשי  מתקדמים  Program-Generated Events and the AWTEventMulticaster Class  תכנית לדוגמה עצמות-חשופות גרסה להדפסה

תכנית לדוגמה עצמות-חשופות

 

תכנית זו מעוצבת להיות מהודרת ומורצת תחת 1.1JDK. זוהי תכנית עצמות-חשופות הממחישה אירועים המחוללים ע"י תכנית תחת 1.1JDK.

מחלקת אובייקט לא-ויזואלי (מכונה NonVisual) מוגדרת. אובייקטים של מחלקה זו מסוגלים לחולל אירועי פעולה. אובייקט יחיד של המחלקה הלא-ויזואלית מובזק. מחלקת ActionListener יחידה מוגדרת אף היא. אובייקט מחלקה זו מובזק ונרשם להאזין לאירועי פעולה על אובייקט ה NonVisual.

אז מתודת ה generateActionEvent() מופעלת על האובייקט הלא-ויזואלי מה שגורם לאירוע פעולה להילכד ולהיות מעובד ע"י אובייקט ה ActionListener. העיבוד הוא בפשטות להציג מידע המזהה את האובייקט הNonVisual אשר חולל את האירוע.

הפלט מהתכנית הוא .

 

Copyright 1997, R.G.Baldwin
actionPerformed() method invoked on NonVisualObject

 

 

 

 

התכנית נבדקה תוך שימוש 1.1JDK בהרצה תחת חלונות 95.

 

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

 

מקטע הקוד המעניין הראשון הוא הקוד בבנאי אשר:

מבזיק אובייקט מהסוג החדש של NonVisual

מפעיל את מתודת makeActionListenerList() על אובייקט ה NonVisual לרשום אובייקט מאזין על אובייקט ה NonVisual.

מפעיל את מתודת generateActionEvent() על אובייקט ה NonVisual על מנת לגרום לאירוע פעולה להיות מחולל ע"י אובייקט ה NonVisul.

 

NonVisual nonVisualObject = new NonVisual("NonVisualObject");
nonVisualObject.makeActionListenerList(new AnActionListenerClass());
nonVisualObject.generateActionEvent();

 

 

 

 

 

מקטע הקוד המעניין השני הוא ההצהרה על משתנה המופע בהגדרה של מחלקת ה NonVisual אשר תתייחס לרשימה של אובייקטי מאזין רשומים. כפי שהוזכר קודם לכן משתנה מופע זה יכול באותה קלות להתייחס לאובייקט יחיד מסוג ActionListener כפי שמתייחסים לרשימה של אובייקטים שכאלה. למעשה  בתכנית זו של עצמות-חשופות הוא כן מתייחס למופע יחיד של אובייקט ActionListener כפי שנדון בפירוט רב יותר מאוחר יותר.

 

 ActionListener actionListener;
//list of registered action listener objects

 

 

 

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

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

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

 

    actionListener =
AWTEventMulticaster.add(actionListener, listener);

 

 

 

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

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

 

actionListener.actionPerformed(
   new ActionEvent(this, ActionEvent.ACTION_PERFORMED, ID));

 

 

 

 

הפרמטרים עבור הבנאי ActionEvent  מוצגים להלן .

 

public ActionEvent(Object source, int id, String command) 

Constructs an ActionEvent object with the specified source object.  

Parameters:  
source - the object where the event originated  
id - the type of event  
command - the command string for this action event

 

 

 

 

 

 

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

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