السلام عليكم
انا كنت ابحث عن طريقة بحيث اعيد رسم بعض الاشكال من دون الاخرى في دالة paint , فوجدت طريقة لكن !
هذه هي الطريقة
int count=0;
int count=0;
public void paint(Graphics g2)
{
if(count==0)
{
drawRec(g2);
d[1][1]=drawDirty(1,1);
d[1][1].draw(g2);
g2.setColor(Color.blue);
cir.draw(g2);
}
count++;
if(cir.centerX==d[1][1].centerX&&cir.centerY==d[1][1].centerY)
{
d[1][1].centerX=600; d[1][1].centerY=600;
down(1,25);
}
else if (cir.centerX == d[1][1].centerX)
{
if(cir.centerY<d[1][1].centerY)
down(1,25);
else
up(1,25);
}
else
foward(1,25);
if(cir.centerY<=b/6+115||cir.centerY>=b/6+2*b/3+115)
foward(1,25);
}
public Circle drawAg(int x,int y)
{
int []X=new int[18];
int []Y=new int[18];
for(int i=0; i<18; i++)
{
X=(a/12)+i*(a/6)+115;
}
for(int j=0; j<18; j++)
{
Y[j]=(b/6)+(b/3)*j+115;
}
Circle c=new Circle(X[x],Y[y],30);
return c;
}
public void foward(int amountX,int slow)
{
cir.centerX=(cir.centerX + amountX);
repaint();
try {
Thread.sleep(slow);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void back(int x,int slow)
{
cir.centerX=(cir.centerX -x);
repaint();
try {
Thread.sleep(slow);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void up(int y,int slow)
{
cir.centerY= (cir.centerY -y);
repaint();
try {
Thread.sleep(slow);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void down(int y,int slow)
{
cir.centerY= (cir.centerY +y);
repaint();
try {
Thread.sleep(slow);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Circle drawDirty(int x,int y)
{
int []X=new int[18];
int []Y=new int[18];
for(int i=0; i<18; i++)
{
X=(a/12)+i*(a/6)+115;
}
for(int j=0; j<18; j++)
{
Y[j]=(b/6)+(b/3)*j+115;
}
Circle c=new Circle(X[x],Y[y], 30);
return c;
}عرفت متغير يساوي صفر و تزيد قيمته بعد تنفيذ paint و بعدها في شرط هل count تساوي الصفر ام لا , اذا كانت لا تساوي , لا يعيد تنفيذها لكن اذا شغلت البرنامج لا ارى شيئا مرسوم ,, هل هل repaint تمسح كل شي و تعيد رسمه ؟؟؟
اتمنى ان تساعدوني
