java repaint 没有调用 paint函数

java repaint 没有调用 paint函数
public class Main extends JComponent implements Runnable{

public Main(){
new Thread(this).start();
}
@Override
protected void paintComponent(Graphics arg0) {
super.paintComponent(arg0);
System.out.println("...");
}
public static void main(String[] args) {
new Main();
}
@Override
public void run() {
while(true){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
repaint();
}
}
}

运行的时候并没有调用piant函数里的输出函数。 请问这是为什么。

不需要调用。

解释:repaint方法高早中在父类方法中实际上实现的功能就是paint方法,所以效果是等同,也就敏仔不需戚拿雀要再去重复调用paint方法。


import java.awt.Frame;
import java.awt.Graphics;
public class Frames extends Frame implements Runnable
{
public Frames()
{
this.setSize(200, 200);
this.setVisible(true);
new Thread(this).start();
}

public void paint(Graphics g)
{
System.out.println("..."粗耐);
}

public static void main(String[] args)
{
new Frames();
}
@Override
public void run()
{
while(true)
{
this.repaint();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}

}
}
}

这个,好像喊凳行repaint方法只对Frame或者JFrame起作用吧郑哗??
你也没掉用ran()方法哦。
← 上一篇: 下一篇: →