טיפול באירועים ב- JDK 1.1, בקשת המיקוד.
- הקדמה
- סקירה כללית
- התוכנית לדוגמא
- דיון
- עיבוד ארועי מיקוד
- עיבוד אירועי עכבר
- עיבוד אירועי מקלדת
- עיבוד אירועי חלון
- נתינת שם אוטומטית לרכיבים
- רישום תוכנית
- סקירה
מבוא
שיעור קודם דן בקצרה באירועי focusGained() ו- focusLost() במודל נציג האירועים של JDK 1.1.
בשיעור זה נעיף מבט נוסף בנושא תוך כדי שימוש בתוכנית אשר מכריחה אובייקט אשר אינו זוכה במיקוד בתוכניות Windows טיפוסיות (אובייקט תווית) לא רק לקבל מיקוד, אלא גם להגיב לאירועי מקלדת.
שיעור זה נועד להדגים את הכוח, העקביות והגמישות שבמודל נציג האירועים החדש של JDK 1.1.
סקירה כללית
חולשה רצינית במודל אירועי ירושה ב- JDK 1.0.2 קשורה להחלטות המתקבלות על ידי מערכת זמן הריצה לגבי סוגי האירועים אשר ייווצרו עבור רכיבים ויזואליים.
לדוגמא, ב- JDK 1.0.2 אין אפשרות שאובייקט שדה טקסט ייצור אירוע עכבר מכיוון שמערכת זמן הריצה אשר יוצרת אובייקטים מסוג אירוע ומעבירה אותם לפונקצית postEvent() פשוט מאד אינה יוצרת אירועי עכבר עבור שדות טקסט.
רבים מהם, ואולי כל מגבלות אלה הוסרו במודל נציג האירועים ב- JDK 1.1. מודל נציג האירועים מספק מבחר גדול של אירועים לטווח גדול של סוגי רכיבים ויזואליים.
נראה כי ב- JDK 1.1, רוב הרכיבים הויזואליים הסטנדרטים יכולים לייצר כמעט את כל האירועים ברמה הנמוכה שיש בהם היגיון. (למרות שלא בדקתי את כל ההרכבים של רכיבים ואירועים).
בשיעור זה, נשתמש בהרכב של אירועי מיקוד ברמה נמוכה, עכבר, ומקלדת על מנת לגרום למסגרת, תווית, כפתור, ושדה טקסט לקבל מיקוד ולהגיב לאירועי מקלדת.
(שים לב שלפני ה- 9/5/97, חלק זה התייחס בטעות לאירועי מיקוד כאל אירועים סמנטיים).
שים לב שתוכניות Windows וסביבות RAD ב- BASIC, C++, ו-Pascal אינם מספקות תמיכה באירועי מקלדת עבור תוויות ומסגרות ולעיתים קרובות אינן מאפשרות לתוויות לקבל מיקוד.
יתכן וגרימה לכך שתווית יקבל מיקוד ויגיב לאירועי מקלדת אינו מועיל מבחינה סטנדרטית,
אך היכולת לגרום לכך מדגימה את הכוח שבמודל נציג האירועים ב- JDK 1.1.