基本上,我使用JPanel在单击时加载内容。新内容也返回为JPanel,因此最终是JPanel->内部JPanel->内部JFrame。当我需要加载新内容时,我清除面板,加载新内容,并验证(validate)JFrame和JPanel,新内容就会显示出来。
我的问题是,当新内容显示时,很明显验证方法起作用了,因为我可以看到新的界面,但我也可以看到旧的界面,就好像它变成了背景一样;我可以调整窗口大小,它就消失了,看起来就像应该的样子。
这只是validate的工作方式,还是我可以修复它?
编辑:这个方法有效。问题是我没有手动调用repaint。
public BaseWindow setContent(JComponent comp){
contentPane.add(comp);
contentPane.revalidate();
contentPane.repaint();
return this;
}