Java用户界面规范

时间:2020-03-06 14:31:35  来源:igfitidea点击:

Java为使用Java Swing构建的应用程序提供了标准的用户界面准则。基本准则很好,但是我真的觉得外观确实很无聊和过时。

有谁知道公开提供的Java用户界面指南,其外观和感觉准则比Sun提供的准则更好?

解决方案

我们在此处显示了许多LNF(外观),但是它们并没有完全提供" Java用户指南"。

但是,MigLayout确实严格遵循那里存在的主要用户界面标准(包括按钮顺序的一些晦涩之处):

For instance the OK and Cancel buttons have different order on Windows and Mac OS X.

  While other layout managers use factories and button builders for this, it is inherently supported by MigLayout by just tagging the buttons.

  One just tags the OK button with "ok" and the Cancel button with "cancel" and they will end up in the correct order for the platform the application is running on, if they are put in the same grid cell.

在Mac上的示例:

http://www.miglayout.com/images/Form.png

我认为没有其他完整的准则。但是,如果我们不是在谈论组件的间距/位置(我不认为外观设计指南的一部分已经过时),而是仅在外观上感觉良好的起点就是singlabx / swingx:

http://swinglabs.org

http://swinglabs.org/docs/presentations/2007/DesktopMatters/FilthyRichClients.pdf

http://parleys.com/display/PARLEYS/Home#slide=1;talk=7643;title=Filthy%20Rich%20Clients

和JGoodies:

http://www.jgoodies.com/articles/index.html

http://www.jgoodies.com/articles/efficiency%20swing%20design.pdf

苹果开发人员指南具有人机界面指南http://developer.apple.com/documentation/UserExperience/Conceptual/AppleHIGuidelines/XHIGIntro/chapter_1_section_1.html#//apple_ref/doc/uid/TP30000894-TP6.

即使它是针对Mac平台的,我们也可以从中学到一些东西,这就是为什么这么多Mac应用程序令人愉悦且美观的原因!

按照Chii的回答,我建议我们查看Windows Vista用户体验指南,以获取有关制作用户界面的一般提示。

尽管名称(" Windows Vista用户体验指南")和来源(Microsoft)可能暗示它仅包含以Windows为中心的提示和建议,但它确实提供了很好的常规提示和说明,可在为非Windows应用程序设计界面时使用。也一样

设计原则部分介绍了在设计有效的用户界面时要记住的一些要点。例如,如何设计出色的用户体验的第三个项目说:

Don't be all things to all people Your
  program is going to be more successful
  by delighting its target users than
  attempting to satisfy everyone.

这些技巧适用于在任何平台上设计用户界面。当然,也有Windows特定的准则。

我认为,Swing应用程序的外观似乎"无聊"和"过时"的最大原因之一是由于Java的平台无关性。为了使图形用户界面可以在多个不同平台上工作,Java需要具有使用户界面适应不同主机操作系统的功能。

例如,各种平台的窗口,按钮和其他视觉组件的大小各不相同,因此绝对定位效果不太好。为了解决该问题,Swing使用布局管理器(通常)使用相对位置将可视组件放置在屏幕上。

尽管为Java构建图形用户界面存在这些"局限性",但我认为使用非Sun来源和非Java特定来源提供的指南中的技巧仍然可以作为设计和实现用户界面的良好信息来源。那是有效的。毕竟,设计用户界面与编程语言无关,而与人机交互有关。