我正在为Java应用程序制作GUI。我想要做的是有一个框架,并根据用户操作更改正在显示的面板。虽然如果我做这样的事情:
private void setFrameContent(Container content) {
appFrame.setContentPane(content);
}
一旦我尝试更改正在显示的JPanel
,框架就会冻结。还尝试了一些变化。
我应该如何更改框架的内容?
一个选项是CardLayout,但这意味着我必须在应用启动时创建所有面板,而其中一些可能不会被使用。还有什么方法可以达到这个目的?
答案 0 :(得分:2)
1)如果您将JComponent
添加到已经可见的容器中,那么您需要调用revalidate()
和repaint()
,在您的情况下
for Java7直接实现了revalidate()
和repaint()
到JFrame
对于Jav6和更低版本,您需要revalidate()
和repaint()
ContentPane
2)我认为CardLayout(仍然)可以更好地在Swing GUI中切换Views