Project Matisse:在 Mac OS X 上开发 GUI

来源:互联网 发布:淘宝买机票靠谱吗 编辑:程序博客网 时间:2024/06/05 17:04

NetBeans 5.0 是一种全面的 Java 开发工具,它支持各个层次(包括客户端、服务器端、嵌入设备)的 Java 开发。它是免费和开放源码的,位于:www.netbeans.org。为了让经验丰富的程序员和入门级的程序员在 Macintosh 上使用 NetBeans 时都同样能体会到极大的乐趣,NetBeans 开发人员花费了很多的努力。NetBeans 集成开发环境 (IDE) 提供了许多开箱即用的功能,其范围要远远超过可在任何其他免费 Java 开发工具中使用的功能。由于 NetBeans 是用 Java 编写的,因此它可在任何平台上运行。本文将演示使用 Matisse 创建一个用户界面,用户界面生成器是 5.0 版的一大亮点。使用 Project Matisse,用户只需通过拖放就能创建真正的跨平台 UI

创建跨平台用户界面所面临的挑战

任何 Macintosh 用户都曾遇到过从其他操作系统移植的应用程序,而这些应用程序的外观在他们的桌面上不是十分合适。大部分供应商不希望针对每一种操作系统完全重新编写他们的应用程序。Desktop Java 应用程序对这个问题特别敏感,因为虽然它们从本质上就是跨平台的但是仍有一些细微处能够反映出某个应用程序的外观是否适合每个平台。

幸运的是Apple 提供了一个优秀的用户界面设计原则集合它可以帮助设计Mac友好的Mac-friendly UI。实际上,违反这些原则通常会导致应用程序的外观“Mac友好的”

Swing UI 工具套件非常注意确保您的 UI 组件在 Macintosh 上看起来是合适的但除了可爱的蓝色按钮还有其他更多方面是Mac友好的。其他的细微之处之一是组件间距。对于组件之间应当保持多远的距离以及它们与所在窗口边缘之间的距离,每个平台都有不同的推荐方案。使用 NetBeans 5.0 Matisse,您只需在 Macintosh 上设计一次您的 UI,就会发现它也同样符合其他平台上的这类原则 – Matisse 不仅使得 Java UI 的设计比过去更加简单,而且使跨平台 UI 设计成为了现实,而这一切只需拖放这么简单。

过去,在 Java 中布局表单十分困难。有一些布局管理器拥有不寻常的强大功能,但却不容易使用 GridBagLayout,而其他的各种其他布局管理器都有它们自己的用途和限制。Matisse NetBeans 5.0 中的 UI 生成器,它使用了一种独特的、开放源码的布局管理器。它将包括在 JDK 6 中,可以与您的应用程序装配到一起,以简单快捷地创建出外观漂亮、跨平台的用户界面。它应与 JDK 1.4 及以上版本一起工作。

使用 Project Matisse

要开始使用 Matisse,只需在项目中创建一个新的 JPanel 表单您可以转到 File | New File 菜单项,也可以右键单击(或按住 Ctrl 键单击) Java 包,然后选择 JPanel Form

此操作将创建一个新的 Java 源文件它会扩展 javax.swing.JPanel 并打开 MatisseGUI 编辑器 -  然后您就可以从右部出现的 palette 中向表单上拖放组件。

这个屏幕快照显示了沿着表单左上部边缘的虚线基准线guide lines);将一个组件拖到此表单上,它将对齐到合适的位置。例如,在 Component Palette 中单击 JLabel 项目,将把组件拖到合适位置,然后单击。这些基准线很特殊只有 Matisse 才能提供因为它们表示 Apple Apple用户界面设计原则中推荐的窗口组件与边缘之间的距离。(如果不想让组件对齐到合适位置,请在放置组件之前按下 Option 键)。

实际上还有更多的功能。特定于 Macintosh 的定位只是创建特定于平台用户界面问题的一个示例:您不会希望将特定于 Macintosh 的间距用在其他任何地方,而只是用在 Macintosh上。否则的话,您的用户将会得到同样的体验 -- UI Linux Windows 上看起来很不自然正如您在 Macintosh 运行一个失败的移植应用程序一样。这肯定不是 UI 设计工具的目的它不应当创建仅能在设计它的计算机上看起来很棒的 UINetBeans 针对所有平台解决了这个问题。在下面的部分中,我们将向您讲解这个问题是如何解决的。

创建跨平台 UI

Project Matisse 在运行过程中计算间距布局管理器知道它正在运行的是哪种平台而且它知道针对每种平台的用户界面设计建议。如果您在 GTK 外观下的 Linux 上编译此用户界面并运行它,那么,间距将是 GTK 的用户界面原则中所建议的间距。对于 Microsoft Windows 或者 Java 外观 (Metal) 也是一样:您的 UI 将符合 Sun Java 外观设计原则。只需在标签上拖放,您就已经获得了一个用户界面,它将完成正确的操作,而且对于任何平台上的任何用户来说都会感觉很舒服。

使用 Project Matisse您的应用程序在任何平台上看起来都会很合适而不仅仅是您设计它时所用的平台。

添加更多组件

大部分用户界面都比单一的标签组件更复杂,所以让我们继续添加更多组件。例如,我们要创建一个简单的客户信息编辑屏幕。下一步将添加用户可以输入某些文本的文本字段。这个操作还是简单地选择、拖放。

上面的屏幕快照上还多出来了两条基准线。垂直线与指引我们拖动 JLabel 的线非常类似。Matisse 自动建议 Apple 为表单组件所推荐的间距值。当您的应用程序部署之后,它将自动按照应用程序所运行的任何平台调整出合适的间距。UI不是硬编码的,而且它不会只是因为您是在 Macintosh 平台上进行开发就看起来像是特定于 Macintosh 的界面 - 这是一个真正的跨平台 UI

Matisse 用来提供帮助的另一条基准线是水平线。这条线表示字体基线。人们以直线方式读取文本 - 实际上有一个原因是书中仍然在使用 Serif 文本,衬线(字母上下两端的细线)实际上有助于眼睛查看文本。如果您想让某些人以更慢的速度阅读某些内容,

您通过一个小实验就能证明这个结果。不幸的是,许多用户界面看起来是这样的:

如果我们创建了这样的 UI,那么说明开发人员在不经意间折磨着我们的用户!当然,每个阅读本文的人都知道这个字段是用来填写人员姓名的。但是,您是否花费了稍微长一点的时间来处理这个图像呢?而且这样的一个 UI 将会如何影响用户对应用程序质量的看法呢?实际上,这些微妙的差异会使您的应用程序与其他应用程序拉开距离。在竞争激烈的市场中,它就麻烦了。您可以自己考虑一下,您是愿意使用您能够获得 mp3 文件的网站还是愿意使用 iTunes

如果您使用带有 Project Matisse NetBeans您的问题就能得到永久解决。这是很明显的。您所要做的工作就是拖放。Matisse 了解字体基线(即使两个组件不是在相同的高度),它可以按照字体基线在任何平台上、以任何字体大小准确地对齐。您要做的工作就是利用此功能在出现水平基准线时拖动鼠标按钮。

当然您可以使用 GridBagLayout 执行这一切但是它需要大量的技巧和工作量。您可能需要使用offscreen Graphics 对象计算像素偏移量然后用偏移量来计算您对任何给定组件的 GridBagLayout 提供的插入位置根据相互的字体基线计算错误中心。所有开发人员都必须为了创建一个真正跨平台的 UI 而额外进行这些工作。现在,您再也不需要这样做了。使用 NetBeans 5.0 & Matisse,通过它的拖动、放置功能,您就可以获得一个 UI,这在任何平台上都是一项轻松愉快的工作。

完成 UI

让我们继续将它转化为一个实际的用户界面。我们只需拖放更多组件,并使用 Matisse 对齐准线(snap-to-guide line在合适的位置放置组件,即可完成此操作。Matisse 将显示组件之间的关系,

添加更多组件的过程实际上也反映了 Matisse 是一个非常强大的 UI 设计工具上面屏幕快照中的所有组件都包含了用户预期的实际调整行为,它使 UI 在不同的平台和字体大小上看起来都是合适的。您的用户将体验到一个看起来像是专门为他们的环境而设计的应用程序,而不管他们是在哪种平台上运行。

超越 Desktop Java

本文强调了 NetBeans 5.0 中的桌面 Java 支持但只是讲述了 NetBeans 为服务器端和其他 Java 开发人员所提供支持的冰山一角。NetBeans 具有开箱即用的功能,以及对 Java Enterprise Edition 开发的无可比拟的支持。您可以立即下载绑定了应用程序服务器的(Sun Java System 的应用程序服务器、aka 的开放源码 Project Glassfishaka J2EE Reference ImplementationNetBeans,开箱即用的 J2EE 的应用程序开发。虽然 NetBeans 从插件体系结构和各种开发社区 第三方插件中获益,但您只需下载 NetBeans IDE 就能为提供进行重大开发的所需的一切,无需任何附加的配置或下载。

NetBeans 开放源码项目

NetBeans 开发源码项目由 Sun MicrosystemsJava 语言的编写者提供赞助。它位于 netbeans.org源代码的首页以及 NetBeans 用户和创作者的一个活动社区。这里有各种可作为 IDE 用户资源的邮件列表,也有开发列表(您可以在这里对 NetBeans 项目的未来方向提供建议),您还可以自己投稿。所有这些列表也可以在 news.gmane.org 上通过 newsreader 访问。NetBeans IDE 可以从 netbeans.org 下载。

更多信息

Matisse Demo 动画演示

Matisse GUI Builder Quickstart Tutorial (zip)

Developing for Java with NetBeans 4.1 on Mac OS

Project Matisse (NetBeans GUI Builder)

查看本文英文来源:http://www.netbeans.org/kb/50/applematisse.html




原创粉丝点击