Swing图形界面 - 创建一个“设置”窗口(正确方式)

7
我正在开发一款使用Swing的应用程序。我已经成功地创建了一个主GUI供用户使用。然而,我想允许用户更改他/她的设置。我应该如何创建设置窗口?使用名为“Settings”的新JFrame是处理这个问题的最佳方法吗,还是有比第二个JFrame更好的选项?
(注:设置JFrame在退出时不会关闭主GUI,它将使用DISPOSE方法)
我希望以最少的内存消耗来处理这个问题,但保持应用程序的专业外观。

1
查看使用多个JFrames,好的/坏的做法?。顺便说一句,这是一个很好的问题。 - Andrew Thompson
3个回答

5

你考虑过使用CardLayout吗? http://docs.oracle.com/javase/tutorial/uiswing/layout/card.html

个人认为,对于配置设置,使用单独的对话框有点过时了。我更喜欢选项卡布局,这是一个带有顶部选项卡栏的卡片布局。

你可以轻松地在接近顶层的卡片布局中包装你的应用程序,并添加一个菜单操作来切换到配置卡片,"确认"或"取消"按钮切换回主应用程序卡片。

最终,真正重要的是你的用户喜欢什么,但记住很多人可能更喜欢他们知道的东西,即使它不是更好的解决方案。你必须找到平衡点,如果你的实现非常出色,那么最终他们会希望在其他应用程序中使用你的解决问题的方法。

选项卡浏览与多窗口浏览是这一点的完美例证。个人而言,现在我已经习惯了浏览选项卡,就无法想象回到多窗口浏览,但在某个时候,多窗口浏览是唯一的选择。

最后,如果你发现选择错误了,保持代码足够干净,以便轻松地实现任一解决方案。只要你的配置屏幕只是一个简单的JPanel(或包装在一个JPanel中),这并不难做到。

1
我不认为CardLayout是最好的选择,我个人更喜欢在模态JDialogJOptionPane中查看选项设置。另一方面,你的回答中提到了“人们不同/事物随时间变化”的类型问题。非常好的观察和解释。 - Andrew Thompson
我喜欢CardLayout的基本想法,看起来非常干净整洁。我发现大多数程序都使用模态JDialog来处理设置窗口。我会尝试两种方法,看哪一种看起来更加清晰。 - Anthony


0
你需要查看ApplicationListener接口,特别是该接口的'handlePreferences'方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接