Después de יצירת הסביבה הגרפית הבסיסיות ו מנוע אנימציה, introduciremos las primeras nociones de interacción por medio de la incorporación del modelo de eventos del ratón.
La técnica consistirá en generar un evento o suceso cada vez que se interactua con el ratón. אירוע זה ייתפסו על ידי כל אחד המודולים התכנות שלנו, היא לעבד אותו, ליצור סוג של פעולה.
הצעד הראשון הוא להבין כיצד לייצר אירועים אלה,, posteriormente, אנחנו יהיה לשלב פעולות משוכלל יותר. לעת עתה הוא מספיק כדי לקבוע את סוג האירוע המתרחש ואת המיקום במסך שבו עשינו את זה.
La תכנות מונחה-אירועים הוא פרדיגמת תכנות שבה המבנה וביצוע תכניות נקבעים על-ידי אירועים המתרחשים במערכת, על-ידי המשתמש או לגרום לעצמם.
כדי להבין את תכנות מונחה-אירועים, אנחנו יכולים להתנגד לזה מהו לא: בעוד תכנות רציפים (o מובנה) הוא שהמתכנת מגדיר מה יהיה זרימת התוכנית, תכנות מונחה-אירועים יהיה המשתמש - או מה שזה. כי אתה מחיל את התוכנייה - אשר לכוון את הזרם של התוכנית. למרות רציפים תכנות שם עשוי להיות התערבות של סוכן תוכנית חיצוני, התערבויות אלה יתרחשו כאשר המתכנת יש לקבוע את זה, לא בכל עת כפי שהוא יכול להיות במקרה של תכנות מונחה-אירועים.(בתוך)
מיישם את ממשק המאזין אירוע
אנחנו תיישם המערכת אירועים בכיתה ייחודית של ספריית גרפיקה עבור תחילה לא לסבך את המודל. הדבר הראשון שנעשה יהיה לשנות את ההכרזה של המחלקה אחראי לתחזוק מסד הנתונים לצייר אובייקטים גרפיים: “לוח כיתה”. ואנו מציינים עם תג “סככה” מחלקה זו הוא מסוגל לשמוע את העכבר.
מעמד ציבורי לוח מרחיב בד סככה MouseListener{
הממשק החדש מחייב אותנו להוסיף קריאה חדשה ספריות JAVA כדי לאתר את הקבצים מיישם את ממשק זה. נעשה את זה עם המילה השמורה “יבוא”.
יבוא java.awt.event.MouseListener;
יהיה צורך ליישם את השיטות מוגדרים בממשק, כמו גם לייבא את הכיתה “MouseEvent” זה מועבר כפרמטר לשיטות אלו. כרגע פשוט אנחנו יצהיר אותם ללא שילוב כל פונקציונליות.
חלל ציבורי mouseClicked(MouseEvent arg0) { // כל שיטה שנוצר באופן אוטומטי stub } חלל ציבורי mouseEntered(MouseEvent arg0) { // כל שיטה שנוצר באופן אוטומטי stub } חלל ציבורי mouseExited(MouseEvent arg0) { // כל שיטה שנוצר באופן אוטומטי stub } חלל ציבורי mousePressed(MouseEvent arg0) { // כל שיטה שנוצר באופן אוטומטי stub } חלל ציבורי mouseReleased(MouseEvent arg0) { // כל שיטה שנוצר באופן אוטומטי stub }
יומן האירועים
אנו נרשום את אירוע עכבר בכל פעם שהיא מופיעה. בבנאי המחלקה או שיטה ישולבו השיחה “addMouseListener” כדי לציין כי ברצונך להוסיף את המאזין.
הפרמטר המועבר הוא השם של המחלקה העוקב אחר העכבר. במקרה שלנו ואנו מציינים כי זה באותה כיתה זה מקליט את האירוע הזה, אשר מומלץ כאשר מצב זה מתרחש. זה האם אנו מתחייבים עם התג “זה“.
ציבורי לוח(){ זה.addMouseListener(זה); }
ניהול האירוע
אנו מגדירים מספר המשתנים שמאחסנים את הקואורדינטות של המיקום של המסך שבו העכבר היה לחוץ
int פרטית lastX = 0; int פרטית lastY = 0;
אנחנו תיישם את אחד התפקידים הקודם, לדוגמה אשר מבוצע בכל פעם שלחצן העכבר לחוץ “mouseClicked”. כרגע אנחנו יהיה פשוט לשמור על קואורדינטות שבה היה לחוץ, למרות שאנו יכולים סיבכו את התוכנית עם פונקציונליות נוספת.
שלח את נקודות הציון נמצאים אובייקט או האירוע המועבר לפונקציה, האובייקט “MouseEvent”
חלל ציבורי mouseClicked(MouseEvent arg0) { lastX = getX arg0.(); lastY = getX arg0.(); }
אנחנו לשנות את שיטת אחראי לצייר על המסך גרפיקה כך לך לצייר משהו במצב שבו העכבר היה לחוץ. זה יישום הפשוטה ביותר המאפשר לנו לוודא בצורה גרפית כי יש בשבי ואנו לעבד את אירוע העכבר.
חלל ציבורי paintOffScreen(גרפיקה גרם){ Enum ספירה = מלון אלמנטים(); אובייקט ob; זמן מה(enum.hasMoreElements()){ OB = nextElement enum.(); אם(OB instanceof SimpleDrawable){ ((SimpleDrawable) OB).לצבוע(סול); } } paintMousePosition(סול); }
אחראי על פונקציה זו “paintMousePosition”, שיישומם היא לכתוב בצורה גרפית את הקואורדינטות מאוחסנת של מיקום העכבר, על-ידי הפונקציה “שרוך”.
חלל פרטי paintMousePosition(גרפיקה גרם) { g.drawString("("+lastX ","+lastY ")", lastX, lastY); }
חייב להיות מְחוּבָּר לפרסם תגובה.