שאלה ב java

הגנטלמן

New member
שאלה ב java

שלום אני עושה תוכנית java הכוללת applet. אני תקוע במחלקה הראשית ששם אני צריך לקרוא לפונקציה ()paint. העניין הוא שהפונקציה דורשת פרמטר Graphics g, אולם כשאני קורא לה היא לא מזהה את ה g (עוד ב main).. מה עושים? איך קוראים לפונקציה??
 

selalerer

New member
אני קצת חלוד, אבל למיטב זכרוני אתה

לא קורא לה, היא נקראת לבד כשהיא צריכה לצייר את הapplet ע"פ שיקולי מע' ההפעלה (או הדפדפן) או ע"פ החלטתך. ע"פ החלטתך לא אומר שאתה קורא לה כפשוטה אלא קורה לשיטה invaldate שאינה מקבלת שום פרמטרים והיא כבר מפעילה את paint במועד הכי קרוב שהיא יכולה.
 

הגנטלמן

New member
לפי הספר אני אמור לקרוא לה

מה שכן הספר לא מפרט איך אני קורא לה מהmain כך שהיא תעבוד..
 

voguemaster

New member
אוקיי

אם אתה כותב APPLET, אין לך מתודה שנקראת main. פשוט, לא ? כשאתה יוצר applet, אתה כותב מחלקה שיורשת מ-Applet ובה אתה חייב לממש כל מיני מתודות כמו init, stop, update, paint וכד'. אם טעיתי אתה מוזמן לתקן אותי כי זה היה מזמן
בכל אופן, paint היא מתודה שנקראת ע"י הדפדפן! או יותר נכון, ע"י ה-JVM של הדפדפן, בזמן שצריך לעדכן את התוכן של ה-applet. אתה לא קורא לה לעולם! הפרמטר g הוא אובייקט של הקשר גרפי שבעזרתו אתה יכול לצייר. אין לך דרך ליצור אחד כזה בעצמך, בטח שלא באמצעים רגילים..
 

selalerer

New member
חלוד, חלוד, אבל אני בטוח שאתה קורא

לה בעצמך. אם למשל שינית מערך גלובלי ששומר מיקומים של עיגולים על המסך, חוץ מהודעה שלך, אין שום דרך שהapplet תדע שצריך לצייר מחדש את המסך.
 

voguemaster

New member
אתה קורא למתודה אחרת אם זכור לי

נכון. אפשרי שלא, מזמן לא כתבתי APPLET.
 

הגנטלמן

New member
תודה רבה.. זה נכון

הסתדרתי כבר.. ואגב, יש מצב לממש interface runeble כך שבאמת תהיה חייב לממש את הפונקציות שהעלת, אולם יש אפשרות גם לא לממש ולקרוא לפונקציית init מה main!! (כמובן שה paint נקראת לבד.. שוב תודה
 
למעלה