מאזין לאירוע ב ג'אווה נועד לעבד אירוע כלשהו - הוא "מקשיב" לאירוע, כגון לחיצת עכבר של המשתמש או לחיצה על מקש ואז הוא מגיב בהתאם. מאזין לאירועים חייב להיות מחובר לאובייקט אירוע המגדיר את האירוע.
לדוגמה, רכיבים גרפיים כמו א ג'בטון או JTextField ידועים כ מקורות אירועים. משמעות הדבר היא שהם יכולים ליצור אירועים (נקרא חפצי אירועים), כגון מתן א ג'בטון עבור משתמש ללחוץ, או JTextField בו משתמש יכול להזין טקסט. תפקידו של מאזין האירועים הוא לתפוס את אותם אירועים ולעשות איתם משהו.
איך עובדי מאזיני האירועים
כל ממשק מאזין לאירועים כולל לפחות שיטה אחת המשמשת את מקור האירוע המקביל.
לדיון זה, בואו נשקול אירוע עכבר, כלומר בכל עת שמשתמש לוחץ על עכבר על משהו, המיוצג על ידי כיתת ה- Java MouseEvent. כדי לטפל באירוע מסוג זה, תחילה תיצור עכבר ליסטנר כיתה שמיישמת את ה- Java עכבר ליסטנר ממשק. לממשק זה חמש שיטות; יישם את זה שמתייחס לסוג פעולת העכבר שאתה צופה שהמשתמש שלך יבצע. אלו הם:
-
עכבר בטל קליק (MouseEvent e)
מופעל לאחר לחיצה על לחצן העכבר (לחיצה ושחרור) על רכיב. -
עכבר מבוטל (MouseEvent e)
מופעל כאשר העכבר נכנס לרכיב. -
void mouseExited (MouseEvent e)
מופעל כאשר העכבר יוצא מרכיב. -
void mousePression (MouseEvent e)
מופעל כאשר נלחץ על לחצן העכבר על רכיב. -
void mouseReleased (MouseEvent e)
מופעל כאשר שוחרר לחצן עכבר לרכיב
כפי שאתה יכול לראות, לכל אחת מהשיטות יש פרמטר אובייקט אירוע יחיד: אירוע העכבר הספציפי שהוא נועד לטפל בו. אצלך עכבר ליסטנר כיתה, אתה להירשם "להאזין" לאחד מהאירועים האלה כך שתודיעו לכם מתי הם מתרחשים.
כאשר האירוע יורה (לדוגמה, המשתמש לוחץ על העכבר, לפי הסמל לחץ על העכבר () שיטה לעיל), רלוונטית MouseEvent אובייקט המייצג אירוע זה נוצר ומועבר אל עכבר ליסטנר אובייקט רשום לקבלו.
סוגי מאזיני אירועים
מאזיני אירועים מיוצגים על ידי ממשקים שונים שכל אחד מהם נועד לעבד אירוע שווה ערך.
שים לב שמאזינים לאירועים גמישים בכך שניתן להירשם מאזין בודד כדי "להאזין" לסוגים רבים של אירועים. משמעות הדבר היא שעבור קבוצה דומה של רכיבים המבצעים אותו סוג של פעולה, מאזין אירועים אחד יכול להתמודד עם כל האירועים.
להלן כמה מהסוגים הנפוצים ביותר:
- ActionListener: מאזין לסרטון ActionEvent, כלומר כאשר לוחצים על אלמנט גרפי, כגון כפתור או פריט ברשימה.
- ContainerListener: מאזין ל ContainerEvent, שעלול להתרחש אם המשתמש מוסיף או מסיר אובייקט מהממשק.
- KeyListener: מאזין ל KeyEvent בו המשתמש לוחץ, מקליד או משחרר מקש.
- חלון ליסטנר: מאזין ל WindowEventלדוגמה, כאשר חלון נסגר, מופעל או מבוטל.
- עכבר ליסטנר: מאזין ל MouseEvent, למשל כאשר לוחצים על העכבר או לוחצים עליהם.