שאלה בJAVA

yair24

Member
שאלה בJAVA

שלום, עשיתי אפלט בJAVA שיש בו לוח וקוביה ירוקה שאפשר לגרור אותה ממקום למקום בלוח הבעיה היא שיש לי המון היבהובים במסך כי אני משתמש בREPAINT יש איזה פונקציה כמו INVALIDATERECT בMFC? שמציירת מחדש רק קטע מהמסך ולא את כל המסך? אה ויש קישור לאפלט. תודה יאיר
 

yair24

Member
מעניין...

כשהאפלט באינטרנט יש בו הרבה פחות היבהובים מאשר כשאני מריץ אותו מהמחשב המקומי... אבל בכל זאת יש פונקציה כזו? יאיר
 

shed

New member
הטכניקה היא קצת שונה

כדי למנוע הבהובים בג´אווה אפלט, במקום לצייר ישר אל המסך, תצייר אל תמונה לזכרון, ואז פשוט תציג את התמונה החדשה על המסך. טכניקה זו ידועה בשם "תמונת צללים" או בשפה יותר נומרלית buffered picture. כאשר אתה קורא ל-repaint שטח התצוגה שלך נמחק ואז מצוייר מחדש. מה שאתה צריך לעשות זה לדרוס את פונקצית ה-repaint בפונקציה משלך, ובמקום למחוק את שטח הציור תצייר את התמונה הבאה בזכרון ואז רק תציג אותה. אתה יכול לראות דוגמא לרעיון בקובץ המצורף, ואת האפלט הזה ועוד כמה שכתבתי לפני כמה שנים בלינק הבא www.ee.bgu.ac.il/~rann/index2.htm
 
יפה.....ישנו עוד פתרון

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

AfiComp

New member
לשד, לידיעתך...

נכנסתי ללינק שנתת, והרדתי קובץ משחק (???) בשם MoorHunt.exe (הקישור בתחתית החלון "שמחק חדש לשיחרור לחצים"), אותו הקובץ נגוע בוירוס ה - Magistr (כך על פי הנורטון שלי). בברכה, AfiComp
 

shed

New member
תודה על האינפורמציה

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

shadowrunner

New member
השתמש ב JAPPLET

ב SWING שיטת ה DOUBLE BUFFER מבוצעת אוטומטית ולא יהיו לך שום בעיות
 
למעלה