在JavaSwing中切换屏幕

在JavaSwing中切换屏幕,java,swing,jframe,jpanel,layout-manager,Java,Swing,Jframe,Jpanel,Layout Manager,我已经用Android为我的客户构建了一个大型应用程序。 新项目是用Java为PC构建同样的应用程序。所以我开始使用swing进行开发。 在安卓系统中构建时,我使用具有内容视图的活动类,并且我可以在活动之间切换。 在java中,我构建了多个扩展JFrame的类,我希望在它们之间切换。 正确的方法是什么 这是: new_class.setVisible(true); old_class.setVisible(false); 正确的方法?正确的方法是从这些JFrames创建实例并设置其可见性 n

我已经用Android为我的客户构建了一个大型应用程序。 新项目是用Java为PC构建同样的应用程序。所以我开始使用swing进行开发。 在安卓系统中构建时,我使用具有内容视图的活动类,并且我可以在活动之间切换。 在java中,我构建了多个扩展JFrame的类,我希望在它们之间切换。 正确的方法是什么

这是:

new_class.setVisible(true);
old_class.setVisible(false);

正确的方法?

正确的方法是从这些
JFrames
创建实例并设置其可见性

 new Fram1().setVisible(true);

 new Fram2().setVisible(true);

使用Swing的一般方法是使用适当的策略将所有GUI元素“屏幕”组合到一个顶级容器中(通常是
CardLayout
,但关键在于细节)。显示一些其他选项(
JSplitPane
&嵌套布局):

另请参见其他许多备选方案


对于逻辑上位于不同容器中的任何其他功能,请使用(可能)模式对话框或
JOptionPane
。例如:a:


另一件需要考虑的事情是Swing(带有桌面监视器)允许我们向用户提供更丰富的组件集。例如,在安卓SD卡文件系统中浏览通常是通过每个目录使用一个列表来实现的,或者更改列表的内容,或者在输入新目录时查看。在Swing中,您可以使用一个
JTree
。因此,桌面GUI工具包中“不同屏幕”的需求要比设计用于选项卡或电话的工具包少得多

这是一棵树,用在汽车上


请参见
CardLayout,但关键在于细节
?,与动态添加/删除JPanel相比,我看不出有什么重要意义+1@mKorbel对不起,我从来没有想到“添加/删除”,只是想到了所有其他的可能性(大约有一打)。这个用例确实(尖叫)
CardLayout
,不过我会告诉你。