我在 Android 中为我的客户构建了大型应用程序。新项目是用 Java 为 PC 构建相同的应用程序。所以我开始使用swing进行开发。在 Android 中构建时,我使用具有内容视图的活动的类,并且我可以在活动之间切换。在 java 中,我构建了多个扩展 JFrame 的类,我希望在它们之间切换。正确的方法是什么?
这是:
new_class.setVisible(true);
old_class.setVisible(false);
正确的方法?
我在 Android 中为我的客户构建了大型应用程序。新项目是用 Java 为 PC 构建相同的应用程序。所以我开始使用swing进行开发。在 Android 中构建时,我使用具有内容视图的活动的类,并且我可以在活动之间切换。在 java 中,我构建了多个扩展 JFrame 的类,我希望在它们之间切换。正确的方法是什么?
这是:
new_class.setVisible(true);
old_class.setVisible(false);
正确的方法?
使用 Swing 的一般方法是使用适当的策略将所有 GUI 元素“屏幕”组合在一个顶级容器中(通常是 a CardLayout
,但魔鬼在细节中)。 此 GUI显示了一些其他选项(JSplitPane
& 嵌套布局):
另请参阅此答案以了解许多其他选择。
对于逻辑上位于不同容器中的任何其他功能,请使用(可能)模态对话框或JOptionPane
. EG登录,从主框架弹出:
另一件需要考虑的事情是 Swing(带有桌面显示器)允许我们向用户提供更丰富的组件集。例如,浏览 Android SD 卡文件系统通常会通过每个目录使用一个列表来实现,并且要么更改列表的内容,要么在进入新目录时查看。在 Swing 中,您可能会为此使用单曲JTree
。因此,桌面 GUI 工具包中对“不同屏幕”的需求比设计用于选项卡或手机的工具包要少得多。
这是文件浏览器中使用的树。
正确的方法是从这些创建实例JFrames
并设置它的可见性。
new Fram1().setVisible(true);
new Fram2().setVisible(true);