附录D手工创建一个SWT项目
在SWT/JFace篇,读者来信中反映SWT Designer的下载、安装、注册等问题比较多,如果用不了SWT Designer,读者们就无法按照书上所示的步骤创建一个SWT项目,也就无法继续学习下面的内容,这引起了不少读者的困扰。
这里笔者要强调一点:SWT Designer等UI设计工具并非是开发SWT/JFace程序所必须的,而且本书从第7章起就不再和SWT Designer有关系了。笔者现在开发SWT程序就再也没有用过SWT Designer了,它更多的时候可以做为初学者学习SWT的工具,以及开发初期界面布局的辅助设计工具。
这里通过附录的方式给出一个不必安装SWT Designer,也能轻易创建一个SWT项目的方法,以便无法安装SWT Designer的读者,继续学习本书后面的内容。此方法的操作步骤如下:
第一步:参照第17页第4.2节的第一步,新建一个普通的空java项目,项目取名为“myswt”。
第二步:参照第26页的“第一步:将JFace包加入到Eclipse的构建路径上”,将以下列表中SWT/JFace项目依赖的jar包,全部加入到myswt项目的库引用中。
ECLIPSE_HOME/plugins目录下的
org.eclipse.osgi_3.0.1/osgi.jar
org.eclipse.osgi_3.0.1/core.jar
org.eclipse.osgi_3.0.1/resolver.jar
org.eclipse.osgi_3.0.1/defaultAdaptor.jar
org.eclipse.osgi_3.0.1/eclipseAdaptor.jar
org.eclipse.osgi_3.0.1/console.jar
org.eclipse.core.runtime_3.0.1/runtime.jar
org.eclipse.ui.workbench_3.0.1/workbench.jar
org.eclipse.ui.workbench.compatibility_3.0.0/compatibility.jar
org.eclipse.swt.win32_3.0.1/ws/win32/swt.jar
org.eclipse.jface_3.0.0/jface.jar
org.eclipse.jface.text_3.0.1/jfacetext.jar
ECLIPSE_HOME/language/eclipse/plugins/目录下的
org.eclipse.jface.text.nl1_3.0.1/nl1.jar
org.eclipse.core.runtime.nl1_3.0.1/nl1.jar
org.eclipse.jface.nl1_3.0.0/nl1.jar
org.eclipse.ui.workbench.nl1_3.0.1/nl1.jar
说明:
(1)有些读者可能不太明白为什么要导入这么多jar包。其实道理很简单,举例说,开发基于Hibernate的程序,需要Hibernate的jar支持包。同样,开发SWT/Jface程序,也需要SWT/Jface的jar支持包。而且不仅仅是swt.jar、jface.jar两个包就够了,因为这两个包本身还需要其他jar包的支持。而Eclipse中的库引用和Java中classpath的作用是一样的。
(2)ECLIPSE_HOME在Eclipse中是一个变量,它指向Eclipse的安装目录。
(3)ECLIPSE_HOME/language中的language是多国语言包的安装目录(参阅图2.4)。
(4)language下的几个jar包的导入是可选的。如果不导入这几个包,则所开发的SWT程序在运行时,继承自原界面的控件文字将会是英文的。比如第178页的图16.3,如果不导入这几个多国语言包,则图中的“确定”按钮,将变成英文“OK”。
(5)这些界面设置的结果将保存在项目根目录下的“.classpath”文件中。
提示:把这些jar包一个个导入到项目中实在太麻烦了,这里告诉大家一个更快捷的方法:把随书光盘“第二篇SWT_JFace篇(6-16章)\myswt”中的.classpath文件覆盖当前所建项目的.classpath文件,然后刷新项目(右键单击项目名,选择快捷菜单的“刷新”项),这样也能完成本步的操作。
第三步:参照第49页,将SWT原生库swt-win32-3063.dll导入到项目中。
完成上面三步之后,我们就可以开发并运行SWT/JFace程序了。不过因为没有安装SWT Designer,因此也就无法使用SWT Designer提供的一些新建SWT程序的向导(如第50页),但那又有什么关系呢?我们可以直接创建java程序文件,直接写swt代码,也是一样的。