Java 简单小程序中的错误

Java 简单小程序中的错误,java,applet,awt,paint,Java,Applet,Awt,Paint,应该打印以下代码 内部init()--内部start()--内部paint() 但它会打印最后一部分inside paint()两次!为什么呢 public class SampleApplet extends Applet { String msg; @Override public void init(){ setBackground(Color.BLACK); setForeground(Color.yellow); msg = "Inside init()--

应该打印以下代码

内部
init()
--内部
start()
--内部
paint()

但它会打印最后一部分
inside paint()
两次!为什么呢

public class SampleApplet extends Applet {

String msg;

@Override
public void init(){
    setBackground(Color.BLACK);
    setForeground(Color.yellow);
    msg = "Inside init()-- ";
  }

@Override 
public void start(){
    msg += "Inside start()-- ";
  }

@Override 
public void paint(Graphics g){
    msg += "Inside paint().";
    g.drawString(msg, 10, 30);
  }
}

当组件需要重新绘制组件状态的内容无效时,
update
可以调用
paint
方法。当组件需要重新绘制组件状态的内容无效时,
update
可以调用
paint
方法。

引用自:

将根据需要多次调用paint()方法。如果你 将另一个窗口放在GUI上,则会显示paint()方法 打电话。如果然后最小化该窗口并使GUI可见 再次调用paint()方法。等等

因此,如果有问题,如果paint()方法 不止一次打电话,说明你做错了。不要那样做。 paint()方法应仅从现有数据重新绘制其目标, 它应该永远不必计算出要画什么

引自:

将根据需要多次调用paint()方法。如果你 将另一个窗口放在GUI上,则会显示paint()方法 打电话。如果然后最小化该窗口并使GUI可见 再次调用paint()方法。等等

因此,如果有问题,如果paint()方法 不止一次打电话,说明你做错了。不要那样做。 paint()方法应仅从现有数据重新绘制其目标, 它应该永远不必计算出要画什么


请参阅此答案以获取解释。请参阅此答案以获取解释。因此,您的意思是
msg+=“inside paint()”中的计算导致了问题?因此,您的意思是
msg+=“inside paint()”中的计算导致了问题??