在Java swing中切换屏幕

时间:2012-05-28 08:15:32

标签: java swing jframe jpanel layout-manager

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

就是这样:

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

正确的方法?

2 个答案:

答案 0 :(得分:8)

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

另请参阅this answer以了解许多其他选择。


对于逻辑上位于不同容器中的任何其他功能,请使用(可能)模式对话框或JOptionPane。例如。一个log-in, popped from the main frame


另一件需要考虑的事情是,Swing(使用桌面显示器)可以让我们为用户提供更丰富的组件。例如,通常通过在每个目录中使用一个列表来实现在Android SD卡文件系统周围的冲浪,并且在进入新目录时改变列表的内容或视图。在Swing中,您可以使用单个JTree。因此,对于桌面GUI工具包中的“不同屏幕”的需求要少得多,而不是设计用于标签或电话的工具包。

以下是file browser中使用的树。

答案 1 :(得分:0)

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

 new Fram1().setVisible(true);

 new Fram2().setVisible(true);