נושא: MouseListener בJAVA
|
|
כותב |
|
אורחת אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 05 January 2007 בשעה 16:09 | | IP רשוּם
|
|
|
|
היי..
נניח שיש לי class X extends JFrame implements MouseListener (לא יודעת איך אומרים את זה בעברית)
עכשיו בתוך המחלקה הזו הגדרתי שני JPanel שונים ולשניהם עשיתי addMouseListener(this)
ואני רוצה להגדיר בmouseClicked שהJPanel שעליו לחצו ישנה את צבע הרקע שלו (לדוגמא..)
אז האם יש פונקציה בMouseEvent שמחזירה את הJPanel שעליו עשו את הפעולה?
מקווה שהסברתי ברור.. תודה
|
חזרה לתחילת העמוד |
|
|
אורחת אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 05 January 2007 בשעה 19:44 | | IP רשוּם
|
|
|
|
טוב בסוף אף אחד לא עזר לי אז הסתדרתי לבד אבל הפתרון ממש מכוער, בכל מקרה
למי שרוצה- הוספתי MouseListener רק לפריים הראשי ואז הגדרתי ידנית מתי הX
והY שייכים לאיזה פאנל..=\
|
חזרה לתחילת העמוד |
|
|
צחי@ משתמש חבר
הצטרף / הצטרפה: 02 January 2007 מדינה: Israel
משתמש: מנותק/ת הודעות: 209
|
נשלח בתאריך: 05 January 2007 בשעה 19:58 | | IP רשוּם
|
|
|
|
אני לא זוכר בדיוק איך זה הולך ב-JAVA, אבל נראה לי שאפשר להוסיף MouseListener ל-JPanel ואז כל פנל אחראי בנפרד לדעת מתי לוחצים עליו, במילים אחרות, אפשר לרשת מ-JPanel ולממש פנל חדש שיש לו את הפונקציונליות הזאת. זה נראה יותר נכון מבחינת OOP
__________________ דלתות אדריכלים גגות פוליש
|
חזרה לתחילת העמוד |
|
|
אורחת אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 05 January 2007 בשעה 20:11 | | IP רשוּם
|
|
|
|
אני יודעת, זה מה שעשיתי בהתחלה
זה אולי יותר נכון אבל בתכלס זה גרם לי למלא בעיות כי אני צריכה דרך
פעולות שהlistener מזהה להפעיל פונקציות שמוגדרות במחלקה יורשת פריים שלי,
שהיא גם המחלקה שבה התכונית הראשית, ואם האיבר מהמחלקה יורשת פאנל הוא סתם
איבר מסכן שמוגדר במחלקה של הפריים אז אין לי דרך דרכו לגעת בעצם של
המחלקה יורשת פריים (העצם שנוצר רק פעם אחת בתכנית הראשית), אלא אם יש לך
עצה.. אני די מתחילה בעיניין
|
חזרה לתחילת העמוד |
|
|
צחי@ משתמש חבר
הצטרף / הצטרפה: 02 January 2007 מדינה: Israel
משתמש: מנותק/ת הודעות: 209
|
נשלח בתאריך: 05 January 2007 בשעה 21:14 | | IP רשוּם
|
|
|
|
אני חושב שאני מבין את הבעיה שלך, יש 2 דרכים להתמודד עם זה:
1. באיתחול המחלקה היורשת מ-JPanel, תעבירי לו reference של המחלקה היורשת מ-Frame, ואז תוכלי לגשת אליו (פחות יפה). 2. תשתמשי במתודה getComponent של MouseEvent כדי לקבל reference לפנל שהוקלק ולשנות בו דברים מתוך המחלקה היורשת מ-Frame.
שוב, אני אזכיר שכבר מזמן לא עבדתי עם JAVA, אז אני לא בטוח אם האפשרות השנייה ניתנת לביצוע - אבל נראה לי הגיוני שכן. כמו כן, ברור שלמחלקת הפנל החדשה צריכה להיות במקרה כזה מתודה PUBLIC שמשנה את צבע הרקע שלו - אם אין אז צריך לממש כזאת.
__________________ דלתות אדריכלים גגות פוליש
|
חזרה לתחילת העמוד |
|
|
אורחת אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 05 January 2007 בשעה 22:01 | | IP רשוּם
|
|
|
|
אוקיי ניסיתי את הדרך השניה וזה עובד (זה מה ששאלתי מקודם אם יש כזו
פונקציה שעושה מה שgetComponent עושה)... אבל אין לי כח כבר לשנות את הכל
בחזרה עכשיו
זו בעיה שהייתה לי הרבה פעמים אז ממש עזרת לי תודה רבה
|
חזרה לתחילת העמוד |
|
|
|
|
אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם
|
אינך יכול/ה לשלוח נושאים חדשים בפורום זה אינך יכול/ה להגיב לנושאים בפורום זה אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה אינך יכול/ה לצור סקרים בפורום זה אינך יכול/ה להצביע בסקרים בפורום זה
|