אירועי ג'אווה ואיך הם עובדים עם מאזיני אירועים

א אירוע ב- Java הוא אובייקט שנוצר כאשר משהו משתנה בממשק משתמש גרפי. אם משתמש לוחץ על כפתור, לוחץ על תיבת משולבת או מקליד תווים לשדה טקסט וכו ', אז אירוע יפעיל, ויוצר את אובייקט האירוע הרלוונטי. התנהגות זו היא חלק ממנגנון הטיפול באירועים של ג'אווה והיא כלולה בספריית ה- GUI של ה- Swing.

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

שים לב שמקור אירוע צריך להיות בשידוך עם מאזין לאירועים, או שההפעלה שלו לא תביא לפעולה.

איך עובדים אירועים

טיפול באירועים ב- Java מורכב משני אלמנטים עיקריים:

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

ישנם כמה סוגים של אירועים ומאזינים ב- Java: כל סוג של אירוע קשור למאזין המקביל. לדיון זה, הבה נבחן סוג אירוע נפוץ, א אירוע פעולה מיוצג על ידי כיתת ג'אווה ActionEvent, שמופעלת כאשר משתמש לוחץ על כפתור או על פריט הרשימה.

instagram viewer

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

 פעולה בטלה מבוצעת (ActionEvent e)

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

סוגי אירועים

להלן כמה מסוגי האירועים הנפוצים ביותר ב- Java:

  • ActionEvent: מייצג לחיצה על אלמנט גרפי, כגון כפתור או פריט ברשימה. מאזין קשור: ActionListener.
  • ContainerEvent: מייצג אירוע המתרחש בכלי ה- GUI עצמו, לדוגמה, אם משתמש מוסיף או מסיר אובייקט מהממשק. מאזין קשור: ContainerListener.
  • KeyEvent: מייצג אירוע בו המשתמש לוחץ, מקליד או משחרר מקש. מאזין קשור: KeyListener.
  • WindowEvent: מייצג אירוע הנוגע לחלון, לדוגמה, כאשר חלון נסגר, מופעל או מבוטל. מאזין קשור: חלון ליסטנר.
  • MouseEvent: מייצג כל אירוע שקשור לעכבר, למשל כאשר לוחצים על העכבר או לוחצים עליו. מאזין קשור: עכבר ליסטנר.

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