Huihoo.com - Your Enterprise Open Source Community


Java GUI 开发工具 Netbeans 介绍


(from http://www.csdn.net/)

一、下载 Netbeans 后直接解压缩即可运行。

Netbeans 是一个纯 Java 的程序。Windows 、OS2、OpenVMS 和 Linux 版是同一个程序,只不过通过不同的启动程序启动。这一点很好。纯C++的 Java 编译器速度比纯Java 的快了很多。语法分析和编译部分,可以用纯C++写出来,比如 Visual Age for java。当然C++ 的标准中缺少跨平台的动态连接库标准,是一个极大的失策,这是外话,不提。
Netbeans 可以使用外部的编译器,比如 jdk 中的 javac。当然 javac 也是一个慢家伙。通常 Netbeans 调用 netbeans\bin\fastjavac\ 目录下的 fastjavac 来编译。我看到有 Windows,Linux,Solaris 三种。不知道 OS2 和 OpenVMS 版本的 fastjavac 哪里去了?

Netbeans 支持 GUI 编程,在 GUI 编程过程中向导产生一个 initComponents 函数,类似于 JBuilder 向导产生的 jbInit 函数。

不过需要注意的是 initComponents 在编辑器中不可修改。这可能是来源于 Java 语法的一大缺陷。 Java 语法中并没有支持 GUI design time 的语法标签,对于编译器来说,在设计时从Java 代码还原到设计窗口技术上太难。 JBuilder 允许程序员修改向导产生的 jbInit 函数,结果是 JBuilder 的 GUI design 经常出笑话,比如 JBuilder 好几个版本都存在的 GUI 设计时只认识 this.setSize 不认识 this.setBounds 的问题。 Netbeans 干脆不允许程序员修改 initComponents 函数,是好是坏还不一定。一般而言,Netbeans 对于每一个可视化的 .java 文件都会生成一个 .form 文件。对于 Netbeans 编译器来说,在设计时从Java 代码还原到设计窗口是通过解析 .form 文件,这样技术难度下降很多,也不会像 JBuilder 一样经常出低级笑话。当然这个问题的彻底解决需要 Sun 公司好好到 Microsoft 弦簧?VB 的设计课程,只是不知道 Microsoft 要收多少学费,哈哈!!

Netbeans 的 initComponents 函数中中文一般来说时经过 Unicode 编码过。这毫无道理。可能因为设计人员不懂亚洲字符的一些问题,为了保险起见,干脆编码了事。编码过的汉字在 GUI 设计窗口仍然是汉字。其它函数中的汉字不会自动编码。

 

二、使用向导生成代码。

Netbeans 支持倒入 JBuilder 的 Project, 只不过如果要修改由JBuilder 生成的GUI 代码,可能性基本为零。
Netbeans 支持 CVS , 不支持 Source safe。JBuilder 8 支持 Source safe , 不过经常出错,慎用!
Netbeans 支持 java 格式的 resource 文件的多语言编程。不过,我一般将字符串放在 .xml 文件或 数据库中,所以这一个功能对于我来说没有什么作用。

 

三、GUI 界面设计。

Netbeans 支持 Null Layout 和 GridBagLayout 的任意互相转换。对于很多 GUI 组件, Netbeans 都提供很好的属性编辑器,比如用 Netbeans 在 Frame 上修改 JTable 的属性就很方便,远比其他工具要强,直逼当年的 Visual J++。JBuilder 的多个版本的设计 GUI 功能都令人失望,问题多多,速度慢慢,比 Borland 的 CBuilder 和 Delphi 低了无数个等级。不知是不是因为人才流失的关系。

 

四、设置控件属性

Netbeans 的一个特色在于,将属性进行分类,常用的归在一类,比较容易找。我不知道这项功能能不能定制。因为 Netbeans 的分类与我所需要的往往相差较多。无论如何,这是一个好的创意。
Netbeans 的字体设置找到的字体比 JBuilder 找到的字体要多很多。我不知道找字体有何技术难度,JBuilder 很多字体都找不到,可能是 Java 的 bug?
Netbeans 可以自动添加事件的代码。 Java 的事件语法极其差劲,手工写比较容易出错。在 Netbeans 中添加事件过程如下:
选择一个可视化对象,切换到屏幕右下角的 events,双击相应的事件,再按回车。我不知道为什么一定要按回车,麻烦!

 

五、Netbeans 源代码窗口可以全屏,并且可以做函数自动提示。需要注意的是自动提示过程中输入字符是大小写敏感,这让人很不舒服。

 

六、Netbeans 支持断点调试,变量监视。不过 Microsoft 的独家调试技术还是没有加进来。
可能很多人不知道Microsoft 的独家调试技术, 顺便说一下。
1。在 debug 的断点调试下,可以一边修改代码一边继续调试,不用中断调试重新编译。这项技术可以省很多时间。
2。 在 debug 的断点调试下,可以任意改变执行点,比如跳过几行代码继续执行,跳回几行代码继续执行。当知道大概在某一个代码段内有问题,需要反复调试时,这一技术也可以省很多时间。
3。条件中断。比如我们让 repeatCount 值改变时进入调试中断,但是 repeatCount 在多个函数中都有修改。这一个技术也很有用。

我不知道前面两条技术的难度,好像第三个比较容易实现,不知道为什么其他编译器都没有做到。

 

七、其他

以下是 Netbeans 应用了新的 LookAndFeel 后的样子。字体我没有挑好,不过还算可以吧。