Java 如何在同一窗口上创建多个屏幕?

Java 如何在同一窗口上创建多个屏幕?,java,swing,jframe,jpanel,Java,Swing,Jframe,Jpanel,我的意思是,如何设计一个用户界面,在这个界面中,屏幕随着一些动作而改变,但程序完全在一个窗口上运行?换句话说,我认为这与浏览网站的概念是一样的,例如,所有事情都发生在同一个窗口(web浏览器)上,但屏幕内容随着每个动作(按钮单击、链接单击等)而变化 我查看了JavaAPI,发现了CardLayout类;我是朝着正确的方向前进,还是有更简单的方法?(页面上说,CardLayout有点复杂,建议那些愿意手动编写所有代码的人使用) 我知道在JFrame中有validate()和repaint()方法,

我的意思是,如何设计一个用户界面,在这个界面中,屏幕随着一些动作而改变,但程序完全在一个窗口上运行?换句话说,我认为这与浏览网站的概念是一样的,例如,所有事情都发生在同一个窗口(web浏览器)上,但屏幕内容随着每个动作(按钮单击、链接单击等)而变化

我查看了JavaAPI,发现了
CardLayout
类;我是朝着正确的方向前进,还是有更简单的方法?(页面上说,
CardLayout
有点复杂,建议那些愿意手动编写所有代码的人使用)

我知道在
JFrame
中有
validate()
repaint()
方法,但这可能不是它们的正确用法。我不再是一个初学者了,但也不是很有经验,所以请容忍我

任何指导都会有帮助。非常感谢

是,可用于关闭
“卡”
,即屏幕上可见的不同面板

您还可以使用直接切换
JPanels

jframe.getContentPane().remove(...); // Remove old panel from layout
jframe.getContentPane().add(...);
jframe.validate();
jframe.repaint()

请记住,不同的布局工作方式不同,因此没有一种解决方案每次都有效。浏览不同LayoutManager的文档,看看它们是如何工作的。

我个人会删除JFrame的所有组件。诸如此类:

myFrame.getContentPane().removeAll();
然后添加一个全新的内容窗格,然后重新绘制并重新验证框架。

您可以使用,隐藏选项卡,并通过编程从应用程序中切换它们

通过这种方式(例如为了测试目的),您可以轻松地启用选项卡并随时检查每个选项卡的状态

但是,是的,
cardplayout
通常是一个好方法


您可能会试图手动向
JFrame
添加和删除面板。我建议不要这样做-您可能会遇到一些渲染问题,您的代码将变得更加复杂。此外,由于您已经有专门的类来完成这项工作,您应该使用它们,而不是重新发明轮子。

将每个屏幕设计为一个JPanel(将屏幕组件添加到JPanel)。当您知道需要哪个屏幕时,请使用
JFrame.setContentPane(容器内容窗格)
。这将替换JFrame中除菜单之外的所有内容。
如果您需要页面的某些部分保持不变,则必须使用contentPane上的布局,并将屏幕仅设置为布局的一部分(取决于布局,请参阅布局详细信息)

检查此链接,您可以从顶级容器中删除所有子级,并每次完全重建它。是的,
CardLayout
可能是最佳选择,使用