2

次のコードは印刷することになっています

内側init()-内側start()-内側paint()

しかし、それは最後の部分を2回印刷し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);
  }
}
4

2 に答える 2

2

このメソッドは、コンポーネントがコンポーネントの状態のコンテンツを再描画する必要があるときにpaint呼び出される場合があります。update

于 2013-01-20T18:27:23.893 に答える
2

引用元:Paint()

paint()メソッドは必要な回数だけ呼び出されます。GUIの上に別のウィンドウを置くと、paint()メソッドが呼び出されます。次に、そのウィンドウを最小化してGUIを再び表示すると、paint()メソッドが再度呼び出されます。等々。

したがって、paint()メソッドが複数回呼び出された場合に問題となることがある場合は、それを間違って行っています。そのようにしないでください。paint()メソッドは、既存のデータからターゲットを再描画するだけでよく、何をペイントするかを理解するために計算を行う必要はありません。

于 2013-01-20T18:38:15.310 に答える