如何在Swing中做出好的gui设计

时间:2010-02-04 19:53:44

标签: java user-interface swing

您好StackOverFlow系列

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

P.S。也许这个问题对你不好,但对我和其他像我这样的人来说很重要

4 个答案:

答案 0 :(得分:17)

去买这本书:

http://filthyrichclients.org/images/book.png

从描述页面:

  

肮脏的富客户端是图形丰富的应用程序,它们很酷。他们从一开始就吸引用户,并以兴奋的死亡抓住他们。他们让用户告诉他们的朋友应用程序。

     

简而言之,它们使用户真正享受他们的应用体验。您最后一次使用软件应用程序的时间是什么时候?

     

也许你生活中需要更多肮脏的富客户。

阅读并理解它,直到获得您喜欢的UI。

:)

答案 1 :(得分:5)

Joel Spolsky有一篇很棒的文章:User Interface Design for Programmers。它没有特别针对Swing,但它解释了如何为非程序员观众设计简单,高效的UI。

答案 2 :(得分: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)选择器。采取措施熟悉其他所有应用程序将反过来使您的应用程序更易于使用。

答案 3 :(得分:1)

另请参阅JSR-296:这是尝试正式化组合应用程序的一些方面,例如如何处理资源包,如何触发“任务”(背景和模态等)。

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

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