我想知道这个问题很长时间了。
JFrame
我通常通过将包含窗口内容的aJPanel
设置为内容窗格来构建我的 SWING 程序setContentPane()
。当我希望将我的内容替换为另一个内容时(例如,单击按钮后获取新蒙版),我setContentPane()
再次调用并将内容窗格替换为另一个面板。但是每次我这样做时,我都需要调用repaint()
后才setContentPane()
能使更改可见,所以我创建了一个自己的类用于创建框架。此类扩展JFrame
和覆盖setContentPane()
如下:
@Override
public void setContentPane(Container c) {
super.setContentPane(c);
revalidate();
repaint();
}
为什么这没有在默认JFrame
类中实现?这样做可能会产生不好的副作用吗?