【问题标题】:Why does the paint method run twice?为什么paint方法运行两次?
【发布时间】:2014-10-28 22:32:29
【问题描述】:
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.

【问题讨论】:

  • tp 类中是否有启动、停止方法?你可能从哪里调用 repaint()。
  • 你在哪里调用这个方法?
  • 我在 netbeans IDE 中运行了这个程序。将此视为完整程序。当我运行这个程序时,你的第一个控制台输出如上所示。每次我最小化和最大化绘制方法运行的窗口时。我理解那件事。但是为什么它第一次运行两次。我试图调试,但我没有从中得到任何东西。请帮我解决这个问题。

标签: java


【解决方案1】:

在 GUI 编程中,paint() 方法将根据需要多次调用。如果您在 GUI 上放置另一个窗口,则将调用 paint() 方法。如果您随后最小化该窗口并使您的 GUI 再次可见,则将再次调用 paint() 方法。以此类推。

因此,如果多次调用paint() 方法时遇到问题,则说明您做错了。不要那样做。 paint() 方法应该只从现有数据中重新绘制它的目标,它不应该通过计算来确定要绘制的内容。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-07
      • 2013-05-30
      • 1970-01-01
      • 2022-01-11
      • 1970-01-01
      • 2021-06-27
      相关资源
      最近更新 更多