私はこれについてかなり長い間疑問に思っています。
JFrame
私は通常、ウィンドウのコンテンツをJPanel
含む を によってコンテンツ ペインとして設定して、SWING プログラムを構築しsetContentPane()
ます。コンテンツを別のものに置き換えたい場合 (たとえば、ボタンをクリックした後に新しいマスクを取得する場合)、setContentPane()
もう一度呼び出して、コンテンツ ペインを別のパネルに置き換えます。repaint()
しかし、これを行うたびにafterを呼び出しsetContentPane()
て変更を表示する必要があるため、フレームの作成に使用する独自のクラスを作成しました。このクラスは次のように拡張JFrame
およびオーバーライドされます。setContentPane()
@Override
public void setContentPane(Container c) {
super.setContentPane(c);
revalidate();
repaint();
}
JFrame
これがデフォルトクラスに実装されていないのはなぜですか? これを行うことで悪い副作用があるのでしょうか?