【问题标题】:Swing GUI - Creating a 'Settings' Window (Properly)Swing GUI - 创建一个“设置”窗口(正确)
【发布时间】:2012-04-24 02:22:50
【问题描述】:

我正在开发一个使用 Swing 的应用程序。我已经成功地为用户创建了一个主要的 GUI 来工作。但是,我想允许用户更改他/她的设置。我应该如何去创建设置窗口?使用名为“设置”的新 JFrame 是处理此问题的最佳方法,还是有比第二个 JFrame 更好的方法?

(注意:设置JFrame,退出时不会关闭主界面,会使用DISPOSE方法)

我希望以消耗最少内存的方式处理此问题,但保持应用程序的专业外观。

【问题讨论】:

标签: java swing window jframe frame


【解决方案1】:
【解决方案2】:

您必须查看 ApplicationListener 接口,尤其是该接口的“handlePreferences”方法。

【讨论】:

    【解决方案3】:

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

    就我个人而言,我发现使用单独的对话框来进行配置设置有点过时了。我更喜欢选项卡式布局,这是一种在顶部装饰有选项卡栏的卡片布局。

    您可以轻松地将您的应用程序封装在接近顶级的卡片布局中,并添加一个菜单操作以切换到配置卡片,同时将“确认”或“取消”按钮切换回主应用程序卡片。

    最后,这实际上是关于您的用户喜欢什么,但请记住,他们中的许多人可能更喜欢他们所知道的,即使它不是更好的解决方案。你必须找到一个平衡点,如果你的实现很糟糕,那么最终他们会希望你的方法可以在其他应用程序中使用。

    一个完美的例子是标签浏览,而不是多个窗口。就个人而言,现在我已经习惯了浏览标签,我无法想象回到多窗口浏览,但在某个时间点,多窗口是城里唯一的游戏。

    最后,如果您发现自己做出了错误的选择,请让您的代码保持足够干净,以便使用任一解决方案轻松实现。只要您的配置屏幕只是一个普通的 JPanel(或仅包装在一个 JPanel 中),应该不会很难做到。

    【讨论】:

    • 我不同意CardLayout 是最好的选择,我个人更喜欢在模态JDialogJOptionPane 中查看选项设置。 OTOH,您的其余答案解决了“人们不同/事物随着时间而变化”的类型。很棒的观察和解释。
    • 我喜欢 CardLayout 的基本思想。看起来非常干净整洁。我看到大多数程序都有一个关于设置窗口的模态 JDialog。我会尝试使用这两种方式,看看哪种方式看起来更干净。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 2012-10-17
    相关资源
    最近更新 更多