我在x,y处绘制正方形,然后在重新绘制之前在run方法中增加x和y,但是方形不会移动
import java.applet.*;
import java.awt.*;
public class Basics extends Applet implements Runnable{
int x = 0;
int y = 0;
public void init(){
setSize(500,500);
}
public void start(){
Thread a = new Thread();
a.start();
}
public void stop(){
}
public void destroy(){
}
public void run(){
while(true){
x++;
y++;
repaint();
try{
Thread.sleep(18);
}
catch(InterruptedException e){}
}
}
public void paint(Graphics g){
g.setColor(Color.red);
g.fillRect(x,y,25,25);
}
}
然而,即使我不增加x和y并且只是在run方法中为它们设置一个值,方形的颜色为0,0;
答案 0 :(得分:1)
您已在类中实现了Runnable
接口,这意味着您希望它在线程中运行。但是你声明并启动你的线程,而没有指定你想要它做什么。
尝试将Runnable
对象(即this
)传递给Thread
构造函数,以便该线程可以执行某些操作。
Thread a = new Thread(this);
答案 1 :(得分:0)
将applet指定为构造线程时要使用的runnable。更改以下行:
Thread a = new Thread();
为:
Thread a = new Thread( this );