在写软件构造Lab3的过程中,因为需要实现机场航班表、高铁车次表、教师占用表的可视化操作,因此需要学习相关可视化插件的操作,本人选择了使用eclipse中能够下载的windowsbuilder插件作为可视化的工具。使用windowsbuilder的好处在于可以通过直接的框架布局完成窗口的设计,从而自动生成绘制窗口所需要的JFrame代码,简化了可视化的步骤。在查询学习了相关资料后,我将我所了解到的windowsbuilder的相关概念和操作整理如下。
一些关于windowbuilder必须了解到的知识:
在窗口设计界面可以看到这些:
其中:
1.contanters【容器】
容器是一切的基础,就比如一台主机的主板,没有主板,显卡和CPU之类的东西就无法组合起来.目前只使用【panel】
2.layout【布局】
所谓布局,就是指控件在窗口摆放的格式,没有布局控件就无法摆放,因而窗口无法设置
如
(1)流式布局【FowLayout】(限制很大的布局,适合用于有条理布置控件的情况)
控件就像队列一样向某个排列,当遇到边界的时候,就折回从下一行继续排队。就像军训的时候人员一排一排的站好,当一排人数满的时候,就另起一行继续排队。
常用的构造函数有三种
FowLayout()
FowLayout(int align)
FowLayout(int align, int hgap, int vgap)
其中align 代表的是对齐方式,包括三种,值作为静态常量保存在 FlowLayout中了
FlowLayout.LEFT 从左向右对齐
FlowLayout.RIGHT从右向左对齐
FlowLayout.CENTER从中间向两边对齐
(2)BorderLayout 边框布局(同样是限制很大的布局)
控件的摆放位置分为东、南、西、北、中五个部位
(3)CardLayout 卡片式布局(可以切换页面的布局,用于需要切换页面的情况)
(4)AbsoluteLayout 绝对式布局(最自由的布局,可以随意摆放控件的位置,但并不具备卡片式布局的特殊效果),这种布局最为自由,推荐使用
诸如此类界面都要建立在绝对布局之上。
3.Componets【控件】(用于实现功能的物件,就是类似于主机里的cpu和显卡)
(1).Jlabel,标签
(2).JTextFiled,文本框(例如输入QQ账号的那种框)
(3).JCombobox ,下拉控件(例如你要登录QQ时选择你的qq账号列表)
(4).Jbutton,按钮(最常见的,如QQ登录按钮)
(5).JRadioButton
(6).JPasswordFiled,密码框
4.menu【菜单】
诸如浏览器上面的窗口都是菜单控件组成的
下面来介绍一个完整的可视化窗口的绘制过程:
1.打开eclipse,在任意项目下单击鼠标右键,new一个other类的java源文件,找到windowBuilder组件下的Swing Designer,选择需要创建的窗口布局类型,命名后完成创建。(这里以登陆窗口为例,继承JFrame)
2.进入Design界面,选中内部窗体,进行布局方式设置,然后在Containers面板中找到ScorllPane容器,拖拽到设计界面任意位置,拉动鼠标,控制容器大小。
设置layout为GroupLayout布局,能够任意拖动组件到想要的位置。
3.label文本,button按钮,textfield文本框等组件可直接拖动布置到图形化界面上,然后设计各个组件的参数,字体大小,背景颜色等,注意JComboBox组件在设置时需要在model选项中设置其中产生的条目项。根据需求设计即可。
本次实验中,最后设计出的界面效果如下:
自动生成的代码示例:
这样就可以完成可视化的操作了。