当前位置: 代码迷 >> Java相关 >> 关于repaint方法
  详细解决方案

关于repaint方法

热度:214   发布时间:2007-01-04 13:01:29.0
关于repaint方法

我写了一个程序,实现好简单,就是随机的打印一些点出来,现在我是想每打印出一点个就重新擦新一次,就是说,只有一个点在屏幕上
随机的出现,之前的点就不应该出现,怎样实现,帮帮忙~~谢谢了~
import java.awt.*;
import javax.swing.*;

public class radom extends JFrame implements Runnable
{
int x,y;
public radom()
{
setSize(300, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
show();
}
public void run()
{
while(true)
{
this.repaint();
x=(int)((Math.random())*this.getWidth());
y=(int)((Math.random())*this.getHeight());
try{
Thread.sleep(100);
}catch(Exception e)
{}
//System.out.println(x);
}
}
public void paint(Graphics g)
{
g.drawRect(x,y,1,1);
}

public static void main(String args[])
{
new Thread(new radom()).start();
}
}

搜索更多相关的解决方案: repaint  

----------------解决方案--------------------------------------------------------

在你的paint方法里面加上一句
super.paint(g);


----------------解决方案--------------------------------------------------------
明白!谢谢~ 其实是不是调用super.paint(g)这样就可以调用父类的paint()方法来把原来的东西用 父类的"空白"来覆盖?
就是说父类的paint(Graphics g)方法是把当前的组件 用"空白"来覆盖呢?我们如果要在组件画东西就是说要把父类的paint()
方法要重写一次?所以只要调用父类的paint()方法就可以覆盖了原来的东西~
----------------解决方案--------------------------------------------------------