» נושאי לימוד
» נושאי לימוד
יום שני 29 באפריל 2024
Component Impersonation
דף ראשי  מתקדמים  Component Impersonation גרסה להדפסה

  Component Impersonation

מבוא

 

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

 

1.1 JDK שוחרר באופן רשמי ב 18 לפברואר 1997. שיעור זה נכתב במקור ב- 30 למרץ 1997, תוך שימוש בתוכנה ותיעוד שהיו בחבילת ההורדה של 1.1 JDK.

 

הקדמה

 

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

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

 

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

(ActionListner) הרשום באובייקט הכפתור שם הם מעובדים בדיוק כאילו הם נוצרו ע"י אובייקט כפתור.

 

תוכנית לדוגמא זו פועלת לגמרי בתוך מושג מקור/מאזין של מודל נציגות אירוע.

 

תוכנית לדוגמא

 

תוכנית זו עוצבה מלכתחילה לקימפול והרצה תחת  JDK 1.1.1. מאוחר יותר היא קומפלה ונבחנה בהצלחה תחת  JDK 1.1.3. היא מדגימה את השימוש במתודת שליחת אירועיPostEvents)) לשליחת אירועי פעולות לתור האירועים של המערכת. בתוכנית זו אובייקט תווית מתחזה לאובייקט כפתור ע"י שליחת אובייקטים מזוייפים מסוג פעולות אירועים (ActionEvents) ומייחס אותם לכפתור.

 

בניגוד לתוכניות קודמות תוכנית זו לא מפעילה אף אחת ממתודות  processXxxxEvent() . בננוסף תוכנית זו פועלת לגמרי בתוך מושג מקור/מאזין של מודל נציגות אירוע.

 

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

 

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

 

הקוד באובייקט המאזין לעכבר של התווית מתחזה לכפתור ע"י הצבת הזיהוי של אובייקט הכפתור בתוך שדה "מקור" 1000 של אובייקט אירוע פעולה המזוייף.

 

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

 

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

 

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

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