+-

我有一个JFrame,里面是一个jpanel,我用作内容窗格.
所以基本上我使用jpanel将内容加载到点击.新内容作为Jpanel返回,因此它最终成为jpanel – >里面的jpanel – >在Jframe里面.当我需要加载新内容时,我清除面板,加载新内容并验证()jframe& jpanel和新内容显示.
我的问题是,当新内容清楚显示验证方法正在工作,因为我可以看到新界面,但我也可以看到旧界面好像它成为背景;我可以调整窗口大小,它只是消失,看起来应该是这样.
这只是验证的工作方式还是可以修复它?
编辑:这个工作.问题是我没有手动调用重绘.
public BaseWindow setContent(JComponent comp){
contentPane.add(comp);
contentPane.revalidate();
contentPane.repaint();
return this;
}
最佳答案
通常,从面板添加/删除一个或两个组件的代码是:
panel.remove(..);
panel.add(...);
panel.revalidate();
panel.repaint(); // sometimes needed
但是,如果要更换面板上的所有组件,则更好的方法是使用Card Layout.
你已经声明revaliate()后面的repaint()不起作用,所以我唯一的建议是发布你的SSCCE,以证明问题.
点击查看更多相关文章
转载注明原文:java validate()方法无法正常工作 - 乐贴网