先前的FlowLayout的三个参数alignment horizontal gap和vertical gap变成了GridLayout的另外四种参数columns horizontal gap rows vertical gap
为了方便设计笔者在这个例子中将采用null即不用任何LayoutManager来设计界面
布局设置好后就可以在JPanel上摆置各种Swing组件了按照我们最开始设计的草图界面上要摆上四个LabelFrom 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视图的jButtonSend组件下面多了一个actionPerformed事件类型如下图所示
在Java Beans视图中选中actionPerformed事件再VE的窗口中从Design切换到Source视图
在上图标记的代码区域就是我们刚刚添加的按钮事件笔者在事件中调用了一个send方法如图中标记代码区域具体的发送邮件的代码笔者在这里就不实现了
同样的方法一样可以为另一个按钮Clear添加事件
在程序中使用自定义的组件
在前面我们设计好了自己的Java组件现在我们来看看如何在自己的程序中――一个窗口中来调用这个组件
使用前面介绍的方法在工具栏上点击新建Java类按钮建立一个JFrame的Visual Class类你也可以在通过菜单文件>新建>Visual Class来寻一个JFrame类在这里我们将这个类命名为MyApp
当VE窗口出现时可以看到一个空白的JFrame显示在设计视图中此时点击VE的工具面板上的 Choose Bean按钮然后在弹出的对话框中输入我们设计的Java组件的类名MessagePane再点击确定这时当我们的鼠标移到JFrame上时JFrame会用绿色的线条切分成五份如下图所示
educitycn/img_///jpg>
这是因为JFrame的预设LayoutManager是BorderLayout在VE中如果在工具面板上选好Java组件当鼠标移到有特定LayoutManager的容器组件上时(在上图中容器组件是一个JFrame)VE会用适当的形式指示你当前鼠标悬停的位置在上图在VE告诉我们现在处在BorderLayout的中心位置此时再在该位置点击一次我们选好的Java组件即安放到此位置
用VE设计好程序界面就可以切换到Source视图进行具体的代码的编码了在此我们就不累述了
定制VE的环境
之前的讲解大家学到了如何用VE来进行可视化的Java界面设计为了适应不同的开发者VE也提供了一些选项来让开发者设计自己喜好的VE环境
请打开菜单窗口>首选项>Java>Visual Editor此时出现VE的各种首选项界面由于笔者安装的eclipse中文语言包早于VE发布所以此界面仍然是英文界面在这里VE的首选项分为三类AppearanceCode GenerationPattern Style下面结合图形分别介绍
.外观(Appearance)设置
此面板中可以设置这此内容
() 设置可视编辑器和源代码编辑器的布局一种是上下分隔的布局另一种是用页答进行切换的布局(即本文例图中所见到的样式)
() 设置是否显示属性视图和Java Beans视图
() 设置设计时Swing的界面风格
.代码生成(Code Generation)设置
此面板包括以下内容
() 设置是否为新表达式生成注释和try{}…catch()块
() 设置可视设计界面和代码编辑器之间的代码同步时间
.代码模板风格(Pattern Style)设置
此面板包括以下内容
() VE所用的存取Java Bean的代码风格
() VE初始化时尝试使用的初始化方法VE目前已提供了对JbuilderNetBean等其它IDE产品可视编辑器生成的Java组件代码初始化方式的支持
总结
行文至此我们从VE的安装到Java组件设计以及VE环境的设置基本上已对eclipse的全新工具Visual Editor作了一个全面的了解有了Visual Editor我们所有的开发工作从图形用户界面到业务逻辑全部可以在eclipse平台上完成