为什么paint方法运行两次?

时间:2014-09-04 08:44:22

标签: java

import java.applet.Applet;
import java.awt.Graphics;

public class MyApplet extends Applet {
    public void paint(Graphics g) {
        System.out.println("This the test.");
        g.drawString("This the test.", 10, 20);
    }
}

控制台中的输出是:

This the test.
This the test.

2 个答案:

答案 0 :(得分:2)

在GUI编程中,paint()方法将根据需要多次调用。如果在GUI上放置另一个窗口,则会调用paint()方法。如果您随后最小化该窗口并再次显示GUI,则将再次调用paint()方法。等等。

因此,如果您多次调用paint()方法时遇到问题,那么您做错了。不要这样做。 paint()方法只应从现有数据中重绘其目标,它不应该进行计算以确定要绘制的内容。

答案 1 :(得分:0)

只要需要再次绘制Applet,就会调用paint方法。当大小改变时,它会被调用,gui会再次隐藏和可见,或者您可以使用repaint()手动调用它。有时它会被称为nessecary数百次,所以这种行为绝对没问题。