- fmehdi نوشته است:
- سلام و خسته نباشید.
آقای شبان http://rapidshare.com/files/132186007/mini_paint.rar.html برنامه ای هستش که نوشتم ...
در مورد کشیدن مربع یه مشکل داره که خیلی روش کار کردم اما نتونستم درستش کنم
مشکلش اینه که وقتی مربع می کشیم همه عناصر دیگری که روی صفحه رو پاک می کنه ...
هر ترفندی بگی روش به کار بردم اما بازم نشد ...
اما سوالم اینه که از canvas چطوری به Display ی برنامه دسترسی پیدا کنیم ..
برای کشیدن مربع تو تابع paint باید هم Image صفحه نقاشی رو بکشی بعد با g.drawRect مربع رو بکشی و وقتی که کشیدن مربع قطعی شد اون رو تو Image کپی کنی.اگر خودت تمومش کنی مزش بیشتره!
ولی خوب شما تو شی کلاس Canvas نیاز به display داری که خوب چیزی نیست جز یک پوینتر خوب یک جوری پاسش بده.
1- می تونی display تو کلاس MIDlet رو این جوری تعریف کنی:
public static Display display;
اینجوری می تونی تو کلاس Canvas اینجوری بهش دسترسی داشته بشی:
MIDlet.display;
ولی این کار خوبسی نیست!
2- باید پوینتر MIDlet رو یک جوری به Canvas پاس بدی، مثلا وقتی تو MIDlet وقتی Canvas رو new می کنی:
new Canvas(this);
خوب یک constructor دیگه هم برای Canvas بنویس به این شکل.
public Canvas(MIDlet midlet)
{
this.midlet = midlet;
}
که midlet یک متغییر کلاس هست به این شکل
MIDlet midlet;
امیدوارم با این راهنمایی ها خودت بتونی درستش کنی.