Java开发人员进入Java Desktop开发

时间:2009-07-28 06:03:09

标签: java swing swt desktop

我多年来一直在编写Java web(JSF,Struts,JSR168)应用程序。随着最近一位同事离职,看起来我将构建更多的客户端应用程序。我从一开始就使用Eclipse,我对它非常满意。感觉好像SWT正在减弱(只是基于我能找到的文献的观点)和Swing正在飙升。

我的问题: 通过在Eclipse中手工编写应用程序来学习Swing是否有价值(而不是在Netbeans中使用Matisse)?

5 个答案:

答案 0 :(得分:10)

是的,学习手动编写Swing应用程序非常有价值。这样做的一个原因是我所知道的GUI-Designer总是做你想让他们做的事情。另一个 - 在我看来更重要的原因 - 是大多数GUI构建器(尤其是NetBeans)将所有内容生成到一个单独的类中。这可能非常烦人,因为可维护性大大降低(关注点分离)。许多GUI构建器也有阻塞区域,即您无法手动修改生成的代码。或者,如果您这样做,GUI构建器将在您下次使用时覆盖它。

然而,附带Swing的标准LayoutManagers非常复杂。这就是我建议您尝试MigLayoutJGoodies FormLayout的原因。在JGoodies网站上,您还可以找到其他用于替代Look& Feels,Binding和Validation的库,这些库非常有用。

我还建议您查看Presentation Model pattern (Martin Fowler),如果您想对GUI行为进行单元测试,这会有很大帮助。

如果您有动力改进设计并为您的应用添加一些非常酷的效果,请查看书籍Filthy Rich Clients

希望它有所帮助。

答案 1 :(得分:3)

是的,当然 - 即使您计划在大多数时间使用Matisse,您也将受益于至少对Swing代码的合理理解。

答案 2 :(得分:0)

肯定会有所帮助。也许你会达到马蒂斯可以做到的最终目的,并希望手动调整一些代码。在这一点上,最好知道引擎盖下发生了什么。

答案 3 :(得分:0)

请注意,使用马蒂斯和手写Swing并不是完全相互排斥的。 Matisse只生成Swing代码,您可以自定义它。例如,您可以使用Matisse创建GUI的一部分,然后手动旁边的部分。充分利用两个世界 - 至少我是这样做的。

学习如何在Swing中执行某些操作的快速方法是在Matisse中执行此操作,然后查看它生成的代码。

答案 4 :(得分:0)

你肯定需要知道Swing是如何工作的,因为你很可能必须适应和改变GUI程序希望你知道它是如何工作的以及所谓的工作。

Java Tutorial有一个很好的Swing轨迹:http://java.sun.com/docs/books/tutorial/uiswing/