ورود

View Full Version : سوال: پاک کردن صفحه در Canvas



mohsen_motamede
جمعه 25 بهمن 1387, 20:47 عصر
سلام دوستان
من یه برنامه نوشتم با canvas ولی در یکجا به مشکل برخورد کردم و اون هم اینه که من نمیتونم صفحه را قبل از repaint() پاک کنم . یعنی میخوام اطلاعات قبلی صفحه را پاک کنم .
داخل کتاب اصول برنامه نویسی از flushgraphics استفاده کرده ولی netbeans 6 یک چنین چیزی نداشت.
ممنون

mahdi_loves_java
جمعه 16 اسفند 1387, 12:52 عصر
من همين الان امتحان كردم
اما همون طوري كه گفتي همچين چيزي نبود!
رفتم و تو يه كلاس jpane هم امتحان كردم اما اونجا هم نبود (فكر كرده بودم شايد از او دسته متد هايي هست كه تو j2me حذف شده كه اين طور نبود )
احتمالا اين اسمي كه گفتي اسم يه شيء هست كه تو اون مثال ساخته شده
مثال و نگاه كن و ببين شي از كدوم كلاس ساخته شده!
اگه هم تونستي اون مثال و بنويس همين جا تا شايد بتونيم همفكري بيشتري كنيم!:لبخندساده:

true_love
چهارشنبه 24 تیر 1388, 01:43 صبح
سلام عزیز،
بهترین راه حل اینکه داخل متد paint این کد رو بزنی

paint(Graphics g)
{
g.setColor(255,255,255);
g.fillRect(0,0,getWidth(),getHeight);
/*
بعد کد خودتو اینجا بنویس
*/
{

mohsen_motamede
شنبه 17 مرداد 1388, 15:28 عصر
سلام عزیز،
بهترین راه حل اینکه داخل متد paint این کد رو بزنی

paint(Graphics g)
{
g.setColor(255,255,255);
g.fillRect(0,0,getWidth(),getHeight);
/*
بعد کد خودتو اینجا بنویس
*/
{





بله شاید این راه حل خوبی به نظر برسه! همین جوری که به نظر شما امد من هم به این راه حل فکر کردم و اون را نوشتم و لی به مشکلاتی برخورد کردم . و اون هم این بود که قسمت های از صفحه با این روش هیچ وقت پاک نمیشه . من این موضوع را وقتی به اوستادم نشون می دادم فهمیدم و کلی ابروم رفت.

mic_r_c
یک شنبه 18 مرداد 1388, 21:56 عصر
سلام،
این روش کاملا صحیحه و هیچ مشکلی نداره، فقط یادتون باشه که اگر یک قسمت از صفحه نمایش تاثیر نمیپذیره، ممکنه که در محدوده CLIP نیست.
از دستور SetClip برای باز کردن محدوده به اندازه کل صفحه استفاده کنید.

البته مطلب دیگری هم که هست اینه که در زمانی که شما از امکانات API های نمایشی مانند MMAPI دارید استفاده می کنید، به چنین مشکلاتی برخورد می کنید و باید بدونید که جاوا برای این جور مسائل هیچ تدبیر ناندیشیده. مثلا روی تصویر حاصل از دوربین که در حال پخش است، هیچ کنترلی ندارید مگر اینکه از آن عکس تهیه کنید.