以下代码应该打印
在init()
内 - start()
内 - paint()
内。
但它会打印最后一部分inside paint()
TWICE!那是为什么?
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);
}
}
答案 0 :(得分:2)
当组件需要重新绘制组件状态的内容时,paint
可能会调用update
方法。
答案 1 :(得分:2)
引自:Paint():
paint()方法将根据需要多次调用。如果你 在GUI上放置另一个窗口,然后paint()方法将是 调用。然后,如果您最小化该窗口并使GUI可见 再次调用paint()方法。等等。
因此,如果paint()方法是有问题的话 不止一次打电话,你做错了。不要这样做。 paint()方法应该只从现有数据重绘其目标, 它永远不应该做计算来弄清楚要画什么。