问题:每次文字移动的时候怎么不会擦除之前画出来的文字呢?我已经重写update()方法了,把背景填充了白色,怎么不行呢?而且调试了下好像update方法的内容根本不会被调用,是repaint()方法放的位置错了吗?请高手帮我看看,万分感谢!!
代码:
import java.awt.*;
import javax.swing.*;
public class MovementWord extends JFrame implements Runnable{
private int xPos = 50;
private int yPos = 50;
private String name = "hr_vincent";
MovementWord() {
super("MovementWord");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(200, 100, 800, 600);
}
public static void main(String[] args) {
MovementWord mw = new MovementWord();
mw.setVisible(true);
new Thread(mw).start();
}
public void paint(Graphics g) {
Color c = g.getColor();
g.setColor(Color.BLACK);
g.drawString(this.name, xPos, yPos);
g.setColor(c);
}
public void run() {
while(true) {
try {
Thread.sleep(300);
} catch(InterruptedException e) {
}
xPos += 10;
repaint();
}
}
public void update(Graphics g) {
g.setColor(Color.WHITE);
g.fillRect(0, 0, 800,600);
}
}
|