用过SWT,再使用Swing,就好像经历噩梦一般。SWT的控件设计的优雅而实用,提供了很多常用的功能。比如Text就提供输入字符长度限制;众多的事件监听器提供的功能是那么恰到好处,满足了各种可能的情况。真是不明白,为什么Swing要故意设计的这么难用。
因为Swing没有提供类似JFace,Workbench这一层次的封装,所以用起来甚是繁琐。自己要考虑各种各样的技术细节。使用Swt的好处就是技术上上手很快,不需要考虑很多的技术问题,只要把精力放在业务逻辑的处理上就可以了。最典型的应用就是TableViewer,TreeViewer的使用。完全面向对象的封装,面向业务逻辑的使用方法。如果同样的功能用JTable或JTree作的话,要花几倍的时间。
在实际开发过程中,对于一些常用的界面元素,如对话框,表格,树等,不得不仿照JFace的方式,构建自己项目中的对Swing基本控件的封装类。也就是写了Swing版本的JFace。虽然很不爽,但在写的过程中,还是能学到很多东西,这样学习SWT,JFace的源代码,确实使自己的编程水平提高很多,更加深了对设计模式的理解,而且以后使用起来也很方便。不得不承认,Eclipse的源代码实在是很经典。
因为Swing没有提供类似JFace,Workbench这一层次的封装,所以用起来甚是繁琐。自己要考虑各种各样的技术细节。使用Swt的好处就是技术上上手很快,不需要考虑很多的技术问题,只要把精力放在业务逻辑的处理上就可以了。最典型的应用就是TableViewer,TreeViewer的使用。完全面向对象的封装,面向业务逻辑的使用方法。如果同样的功能用JTable或JTree作的话,要花几倍的时间。
在实际开发过程中,对于一些常用的界面元素,如对话框,表格,树等,不得不仿照JFace的方式,构建自己项目中的对Swing基本控件的封装类。也就是写了Swing版本的JFace。虽然很不爽,但在写的过程中,还是能学到很多东西,这样学习SWT,JFace的源代码,确实使自己的编程水平提高很多,更加深了对设计模式的理解,而且以后使用起来也很方便。不得不承认,Eclipse的源代码实在是很经典。