我正在使用Swing的应用程序。我已经成功地为用户创建了一个主GUI。但是,我想允许用户更改他/她的设置。我该如何创建设置窗口?使用名为“设置”的新JFrame是处理此问题的最佳方法,还是比第二个JFrame更好用?
(注意:退出时设置JFrame不会关闭主GUI,它会使用DISPOSE方法)
我想以一种消耗最少内存的方式来处理这个问题,但是要保持应用程序的专业化外观。
答案 0 :(得分:5)
你考虑过CardLayout吗? http://docs.oracle.com/javase/tutorial/uiswing/layout/card.html
就个人而言,我发现使用单独的对话有点过时的配置设置。我更喜欢标签式布局,这些布局是用顶部的标签栏装饰的卡片布局。
您可以轻松地将应用程序包装在近顶级卡片布局中,并添加菜单操作以切换到配置卡,并使用“确认”或“取消”按钮切换回主应用程序卡。
最后,它实际上是关于您的用户喜欢的内容,但请记住,他们中的很多人可能更喜欢他们所知道的内容,即使它不是更好的解决方案。你必须找到一个平衡点,如果你的实现出现问题,那么最终他们会希望你的方法来解决问题,以便在其他应用程序中使用。
一个完美的例子是选项卡式浏览,而不是多个窗口。就个人而言,我无法想象回到多窗口浏览,因为我已经习惯于浏览标签,但在某个时间点,多个窗口是城里唯一的游戏。
最后,如果您发现自己做出了错误的选择,请保持代码清洁,以便轻松实现任一解决方案。只要您的配置屏幕只是普通的JPanel(或仅包含在JPanel中),就不应该这么做了。
答案 1 :(得分:1)
这是一个只做这种事情的类:
http://tus.svn.sourceforge.net/viewvc/tus/tjacobs/ui/dialogs/ParamDialog.java?view=log
答案 2 :(得分:0)
你必须查看ApplicationListener接口,特别是在该接口的'handlePreferences'方法中。