我在Android中为我的客户端构建了大型应用程序。 新项目是为Java构建相同的PC应用程序。所以我开始使用swing进行开发。 在Android中构建时,我使用具有内容视图的活动的类,我可以在活动之间切换。 在java中,我构建了多个扩展JFrame的类,我希望在它们之间切换。 什么是正确的方法?
就是这样:
new_class.setVisible(true);
old_class.setVisible(false);
正确的方法?
答案 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);