如图中1所示,是VE的工具面板,提供"选取"、"框选"等选择工具。还有Swing组件,Swing容器,Swing菜单以及AWT控件设计工具。在面板下方有"Design"和"Source"两个页签,用来切换设计界面和Java源代码视图。
图中2是VE的工具栏,包括工具面板中的一些常用按钮。
图中3是"Java Beans"视图和"属性"视图,两个视图可以切换显示。"Java Beans"视图用树形结构即时显示设计中用到的各种Java Bean组件层次。而"属性"视图显示显示当前所选中的Java bean组件的属性值列表,你可以在此列表中编辑各项Java Bean的属性值。
图中灰色矩形区域即是我们最开始选择的JPanel,所有的工作就从它开始。
摆设Swing组件
做过Swing GUI界面设计的人都知道,Java应用程序界面上的元素位置是用LayoutManager来管理的。JPanel的预设布局管理器是FlowLayout。VE目前支持所有的传统的布局管理器(这里所指的传统布局管理器是指JDK1.4之前的布局管理器。可惜的是VE目前还不支持从JDK1.4开始有的SpringLayout)。
要设置JPanel的layout,请先在设计界面中选中JPanel,再切换到"属性"视图,找到"layout"属性,如下图所示:

图中显示了JPanel的预设LayoutManager。在"layout"属性的右边,可以通过点击组合框来指定不同类型的LayoutManager。不同的LayoutManager会在属性编辑器中显示不同的参数,如果选择GridLayout,属性编辑器中的layout属性将显示另外几种不同的参数,如下图如示:

先前的FlowLayout的三个参数alignment, horizontal gap和vertical gap变成了GridLayout的另外四种参数:columns, horizontal gap, rows, vertical gap。
为了方便设计,笔者在这个例子中将采用null,即不用任何LayoutManager来设计界面。
布局设置好后,就可以在JPanel上摆置各种Swing组件了。按照我们最开始设计的草图,界面上要摆上四个Label:From, To, Subject, Message。以及四个文本组件,其第四个应该是TextArea, 用于编辑多行文本。我们在工具面板上选好相关组件,然后在JPanel上拖选出一个矩形,组件即按相应大小和位置显示在此矩形区域。再在"属性"视图中编辑每个JLabel和JButton的"text"属性为相应的值。现在来看看下面笔者"画"出来的界面:

看看,设计的如何?笔者不是画家,"画"出来的界面显得有些凌乱。没关系,VE也提供一些工具按钮来让我们调整各个组件的位置。请点击VE工具栏上的"Show alignment window"按钮:

显示如下图的视窗:

通过此视窗,可以将所选组件向上下左右各个方向对齐。还可以使所选组件具有相同高度和宽度。来看看下图经过调整位置后的界面布局:

现在看起来是不是美观多了?
添加事件处理
经过前面的步骤,VE的可视化设计的任务就基本上完成了。在我们设计的界面中,有"Send"和"Clear"按钮。我们再来看看VE是如何为它们添加事件处理的。]
在设计界面的"Send"按钮上点击鼠标右键,弹出菜单,如下图:

在"Event"菜单项中,可以看到一个"actionPerformed"事件。如果要添加其它类型的事件,可以点击"Add Events"选择其它类型的事件。我们点击"actionPerformed"事件后,在"Java Beans"视图的"jButton-"Send""组件下面,多了一个"actionPerformed"事件类型,如下图所示:

在"Java Beans"视图中,选中"actionPerformed"事件,再VE的窗口中,从"Design"切换到"Source"视图。

在上图标记1的代码区域,就是我们刚刚添加的按钮事件。笔者在事件中调用了一个send方法,如图中标记2代码区域。具体的发送邮件的代码笔者在这里就不实现了。
同样的方法,一样可以为另一个按钮"Clear"添加事件。
在程序中使用自定义的组件
在前面我们设计好了自己的Java组件,现在我们来看看如何在自己的程序中――一个窗口中来调用这个组件。






