如何在Swing中制作良好的GUI设计

9

嗨,StackOverFlow大家庭

我开发了一个Java Swing应用程序,但是我想改进我的Swing框架的设计。我在谷歌上搜索了这个问题,但是我找不到一个合适的解决方案。请分享您的经验和意见。

p.s.也许这个问题对你来说不太好,但对我和其他人来说很重要


请更好地解释一下。 你想达到什么效果? - oneat
3
您有什么具体需求,或者想要改进什么?是可用性吗?速度?外观和感觉?还是其他方面? - OscarRyz
4个回答

17

去买这本书:


(来源:filthyrichclients.org)

从描述页面中:

肮脏富裕的客户端是指那些图形非常丰富的应用程序,它们散发着很酷的气息。它们从一开始就吸引用户,并以兴奋的死亡紧握留住他们。它们让用户告诉他们的朋友有关应用程序。

简而言之,它们让用户真正地享受应用程序体验。您上次享受使用软件应用程序是什么时候呢?

也许你需要更多肮脏富裕的客户端。

阅读并理解它,直到获得您喜欢的用户界面。

:)


5

Joel Spolsky有一篇很棒的文章:针对程序员的用户界面设计。虽然它没有特别针对Swing,但是它解释了如何为非程序员受众设计简单、高效的UI。


1

好的,我来分享一下我的经验。总的来说,我更喜欢使用SWT和Eclipse,因为它们可以更好地集成,并且具有扩展点等灵活性,但有时候这可能会过度。

在使用swing时,除非表单非常简单,否则我几乎总是使用GridBagLayout。这是因为我设计或体验的大多数GUI都包含许多不一定按流程或表格样式布局的元素 - gridbaglayout提供了以Java喜欢的方式绘制UI的能力+允许必要时调整大小,或者您可以防止发生这种情况。

我使用的特定功能:

GridBagConsts.insets = new Insets(2,2,2,2);

这将为GridBagLayout中的任何单元格添加填充,使其更像是设计为Gtk/MS的程序,而不是我随意拼凑的东西。
try 
{
  UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch(Exception e) 
{
  System.out.println("Error setting native LAF: " + e);
}

将外观设置为系统的外观 - 我不喜欢内置主题(金属),与系统集成更加友好。

这就是硬性规则和快速规则。我建议您查看以下内容:

除此之外,它非常应用程序特定化,您需要阅读有关通用UI设计的资料。一般来说,使用内置控件和工具会有所帮助,例如那些看起来像系统的控件和工具。例如,Java类库包括文件选择器:http://java.sun.com/docs/books/tutorial/uiswing/components/filechooser.html,当设置为系统LAF时,它们看起来像Windows或Gnome(-ish)选择器。采取措施使其与其他每个应用程序看起来熟悉,反过来将使您的应用程序更易于使用。


与其使用GridBagLayout,我会使用MigLayout。http://www.miglayout.com/ 它适用于SWT和Swing。 - Nate

1

同时也看看JSR-296:这是正式化组合应用程序某些方面的尝试,例如如何处理资源包,如何触发“任务”(后台和模态等)。

Netbeans的当前版本(以及一些先前版本)有一个向导可用于构建JSR-296应用程序(“桌面应用程序”)。

http://jcp.org/en/jsr/detail?id=296


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