Geertjan 一直致力于为 Netbeans 6.0 整合对 Groovy 的支持。对于在 Groovy 中能很方便地编写 Swing 代码他很是赞赏,他怀疑 Groovy 是否需要类似于 Matisse 的 GUI 设计工具。Danno Ferrin 回应说,让 Geertjan 产生这个想法主要原因是 Layout(布局),特别是 GroupLayout 。
在文章一开始,Geertjan 就展示了一个很简单的 UI,并列出一些大多数人,不管编程水平高低都能写出来的简单伪码。随后,他又展示了如何方便地将那些伪码粘贴到 Groovy 环境中,再补充少许代码用于调用 SwingBuilder,就可以得到所希望的简单 UI。他阐述到:
既然在 Groovy 中这一切都非常容易,我不知道 Groovy 社区还要不要一个类似于 Matisse 的 GUI 设计工具。所有这些东西看起来都很直观,还有语法加亮和自动代码完成功能,再加上一两个有趣的东西(例如上面显示的导航栏),在 Groovy 中编写 Swing 程序就可以信手拈来了。
很快 Mike A 就回复说,这个例子过于简单,而且没有讨论到 actions、事件和数据绑定等问题。Danno Ferrin 指出,这个例子漏掉的最关键部分就是布局。
Geertjan 的例子太过简陋。UI 可以在界面上很漂亮地排布和分隔开的原因是由于面板的默认布局方式是 FlowLayout。实际上这仅对于简单的 GUI 演示界面和嵌套的按钮面板有用。假如你在设计一个地址表单,上面的标签都要左对齐,并且除了第四行的复选按钮外,所有的文本框都得以相同宽度填充(一般来说扩展到表单右边界),这么做就显得捉襟见肘了。
Danno 举的例子比这里提到的要复杂得多。最后他总结到,编写布局代码并不是一件容易的事情,使用诸如 Matisse 的可视化设计工具可以使得这项工作变得更加简单很多。
评论