实例Runnable接口,在Applet上实现:每次比前一次多一笔的简单动画效果。部分代码如下:
public void run(){
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
while(Thread.currentThread()==thread){
repaint();
flag++;
try{
Thread.sleep(1000);
}catch(InterruptedException e){
break;
}
}
} public void paint(Graphics gg){
g.setColor(Color.black);
switch(flag){
case 1:
g.drawLine(X+80,Y+25,X+80,Y+25+35);
break;
case 2:
g.drawLine(X+80,Y+25+60,X+80,Y+25+35+60);
break;
case 3:
g.drawLine(X+80,Y+25+60+60,X+80,Y+25+35+60+60);
break;
case 4:
g.drawLine(X+80,Y+25+35+60+60+60,X+80+5,Y+25+35-10+60+60+60);
break;
case 5:
g.drawLine(X+80,Y+25+35+60+60+60+60,X+80+5,Y+25+35-10+60+60+60+60);
break;
case 6:
g.drawLine(X+80,Y+25+35+60+60+60+60+60,X+80+5,Y+25+35-10+60+60+60+60+60);
break;
case 7:
g.drawLine(X+160,Y+25+60+60+60+5,X+160-3,Y+25+60+60+5-3);
break;
case 8:
g.drawLine(X+220,Y+25+60+60+60-60,X+220+5,Y+25+60+60+60+5);
break;
case 9:
g.drawLine(X+220,Y+25++60-60-60,X+220-5,Y+25-60+5);
break;
}
为什么有时运行成功,有时中间少了一笔或几笔?????????
public void run(){
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
while(Thread.currentThread()==thread){
repaint();
flag++;
try{
Thread.sleep(1000);
}catch(InterruptedException e){
break;
}
}
} public void paint(Graphics gg){
g.setColor(Color.black);
switch(flag){
case 1:
g.drawLine(X+80,Y+25,X+80,Y+25+35);
break;
case 2:
g.drawLine(X+80,Y+25+60,X+80,Y+25+35+60);
break;
case 3:
g.drawLine(X+80,Y+25+60+60,X+80,Y+25+35+60+60);
break;
case 4:
g.drawLine(X+80,Y+25+35+60+60+60,X+80+5,Y+25+35-10+60+60+60);
break;
case 5:
g.drawLine(X+80,Y+25+35+60+60+60+60,X+80+5,Y+25+35-10+60+60+60+60);
break;
case 6:
g.drawLine(X+80,Y+25+35+60+60+60+60+60,X+80+5,Y+25+35-10+60+60+60+60+60);
break;
case 7:
g.drawLine(X+160,Y+25+60+60+60+5,X+160-3,Y+25+60+60+5-3);
break;
case 8:
g.drawLine(X+220,Y+25+60+60+60-60,X+220+5,Y+25+60+60+60+5);
break;
case 9:
g.drawLine(X+220,Y+25++60-60-60,X+220-5,Y+25-60+5);
break;
}
为什么有时运行成功,有时中间少了一笔或几笔?????????
这里的gg是打错的吧。。你尽可以输入一个flag的值,是不是跳过来了某些值
请恕愚笨,请说的仔细点。谢谢