3

私はこれについてかなり長い間疑問に思っています。

JFrame私は通常、ウィンドウのコンテンツをJPanel含む を によってコンテンツ ペインとして設定して、SWING プログラムを構築しsetContentPane()ます。コンテンツを別のものに置き換えたい場合 (たとえば、ボタンをクリックした後に新しいマスクを取得する場合)、setContentPane()もう一度呼び出して、コンテンツ ペインを別のパネルに置き換えます。repaint()しかし、これを行うたびにafterを呼び出しsetContentPane()て変更を表示する必要があるため、フレームの作成に使用する独自のクラスを作成しました。このクラスは次のように拡張JFrameおよびオーバーライドされます。setContentPane()

@Override
public void setContentPane(Container c) {
  super.setContentPane(c);
  revalidate();
  repaint();
}

JFrameこれがデフォルトクラスに実装されていないのはなぜですか? これを行うことで悪い副作用があるのでしょうか?

4

1 に答える 1