תכנית לדוגמה ממשית יותר
התכנית הבאה היא יותר ממשית ומעוצבת להמחיש את היכולת של מחלקת ה AWTEventMulticaster לשגר אירועים ליותר מאובייקט מאזין אחד ברשימה של אובייקטי מאזין רשומים.
תכנית זו מעוצבת להיות מחוברת ומורצת תחת 1.1 JDK וממחישה אירועים המחוללים ע"י אירועים תחת 1.1 JDK.
מחלקת אובייקט לא-ויזואלי (מכונה NonVisual) מוגדרת. אובייקטים ממחלקה זו מסוגלים לחולל אירועי Action . המנגנון לגרימה לאובייקט מסוג זה לחולל אירוע פעולה הוא להפעיל את מתודת ה generateActionEvent() על אובייקט המחלקה. שני אובייקטים ממחלקת ה NonVisual מובזקים. גם, שתי מחלקות ActionListener שונות מוגדרות. אובייקט ActionListener של אחת ממחלקות אלה מובזק ונרשם להאזין לאירועי Action על שני האובייקטים של מחלקת הNonVisual . בנוסף, אובייקט של מחלקת ה ActionListener האחרת מובזק ונרשם להאזין לאירועי פעולה רק על אחד מהאובייקטים הלא-ויזואליים. כך, אובייקט אחד לא-ויזואלי נרשם רק עם אובייקט ActionListener (מאזין פעולות) אחד. האובייקט האחר הלא-ויזואלי נרשם עם שני אובייקטים שונים של ActionListener. הרישום של שני אובייקטי ActionListener שונים על אובייקט לא-ויזואלי יחיד מצריכה את סיווג AWTEvent Multicaster בכדי לשגר אירועי פעולה לשני אובייקטי Listener שונים וממחיש את המאפיין המרכזי של המחלקה AWTEventMulticaster. לאחר שהאובייקטים הלא-ויזואליים מובזקים ואובייקטי ה ActionListener נרשמים על האובייקטים הלא-ויזואליים, נקראת לעזרה מתודת generateActionEvent (חולל) לכל אחד מהאובייקטים הלא ויזואליים. זה גורם לאירועי פעילות להיווצר, להילכד ולעבור עיבוד ע"י אובייקטי ה ActionListener המתאימים. הצהרות רבות כלולות להסביר מה קורה לאורך הדרך. כל הפלט מהתכנית הולך למתקן הפלט הסטנדרטי. הפלט מהתכנית עבור הרצה ספציפית אחת היה כפי שמובא להלן .
Copyright 1997, R.G.Baldwin Instantiate two NonVisual objects with the ability to generate Action events. Name of first NonVisual object: NonVisualObjA Name of second NonVisual object: NonVisualObjB Register ActionListener objects on the NonVisual objects addActionListener() method invoked NonVisualObj A: Listener to add is: FirstActionListener@1cc728 Invoke AWTEventMulticaster.add() to get reference to ActionListener NonVisualObj A: Ref to ActionListener is: FirstActionListener@1cc728 addActionListener() method invoked NonVisualObj B: Listener to add is: FirstActionListener@1cc761 Invoke AWTEventMulticaster.add() to get reference to ActionListener NonVisualObj B: Ref to ActionListener is: FirstActionListener@1cc761 addActionListener() method invoked NonVisualObj B: Listener to add is: SecondActionListener@1cc783 Invoke AWTEventMulticaster.add() to get reference to ActionListener NonVisualObj B: Ref to ActionListener is: java.awt.AWTEventMulticaster@1cc799 Invoke generateActionEvent() method on the object named NonVisualObjA which has only one registered ActionListener object. In generateActionEvent() method, dispatching ACTION_PERFORMED event to FirstActionListener@1cc728 for NonVisualObj A In actionPerformed() method of FirstActionListener object actionPerformed() method invoked on NonVisualObj A Invoke generateActionEvent() method on the object named NonVisualObjB which has two registered ActionListener objects. In generateActionEvent() method, dispatching ACTION_PERFORMED event to java.awt.AWTEventMulticaster@1cc799 for NonVisualObj B In actionPerformed() method of FirstActionListener object actionPerformed() method invoked on NonVisualObj B In actionPerformed() method of SecondActionListener object actionPerformed() method invoked on NonVisualObj B |
כמה תווי hard return הוכנסו ידנית על מנת לאלץ את הטקסט להתאים ולהיכנס בדף המודפס. התכנית נבחנה תוך שימוש ב 1.1 JDK מורצת תחת חלונות 95.