java入门到精通第7章.ppt_第1页
java入门到精通第7章.ppt_第2页
java入门到精通第7章.ppt_第3页
java入门到精通第7章.ppt_第4页
java入门到精通第7章.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章 布局管理器 本节将介绍SWT中布局管理器,布局管理器是最复杂 的,也是最重要的。布局管理器有五种,分别是FillLayout (充满式布局)、RowLayout(行列式布局)、 GridLayout(网格式布局)、FormLayout(表格式布局) 和StackLayout(堆栈式布局)。在这些管理器中,各有有 点和缺点,比如FillLayout功能单一,但是使用方便, FormLayout精确,但使用起来比较繁琐。下面介绍它们的 用法,以及各自的特点结构。 7.1 布局管理器概述 在前面的学习中,对于组件的位置,我们使用 setBounds()方法来进行坐标绝对定位,可是,如果组件多 的话,使用这个方法不免有一些繁琐,而且坐标往往不容易 确定。使用布局管理器来对组件进行管理,相对来说就简便 的多,而且可以避免在不同操作系统平台下出现的组件混乱 问题。而且对于不同容器中放置组件,定位组件的位置和大 小,SWT提供了绝对定位和托管定位两种方法。 7.1.1 绝对定位 所谓绝对定位,就是为组件提供绝对的坐标值,也就是 前面用到的setBounds()方法。方法内的参数有int x、int y 、int width和int height,分别代表X坐标值、Y坐标值、长 和高,例如设置一个Button。 7.1.2 托管定位 在托管定位中,不必去确定组件的绝对坐标,只要把组 件添加到容器中,至于如何排列,取决于容器所设置的布局 ,也就是前面提到的五个布局方式。 在设置了托管定位后,还可以对组件设置布局数据类( layoutData),一般布局数据类都是以Data结尾,开头部 分是布局类名,例如布局类RowLayout具有布局数据类 RowData。布局类GridLayout使用布局数据类GridData。 为一个按钮设置布局类,保证按钮的长和宽分别是30和60, 7.2 FillLayout FillLayout是最简单的布局管理器,将容器设置成 FillLayout后,组件放到容器中,会以一行或者一列进行排 列,并且充满整个窗口,并且可以自动调整组件的大小 FillLayout也可以设置边界的宽度和组件间隔,所使用 到的方法是layout.marginHeigh(设置上下的高度)、 layout.marginWidth(设置左右的间隙)、 layout.spacing(设置组件之间的间隙)。 在对布局管理器进行设置完成后,如果改变了窗口的大 小,其设置的值不会改变。也就是说,调整窗口大小,只会 自动调整按钮的大小,其他不会改变。 7.3 RowLayout RowLayout(行列式)比较像书写文字,从左到右, 一次进行,只有一行排满,才会切换到下一行,在窗口调整 大小后的对比。 RowLayout的属性设置 1Wrap 2Pack 3Type 4Justify 5设置间隔和补白 6RowData 7Fill 7.4 GridLayout GridLayout是比较复杂的布局方式,也是比较常用的 、功能最强大的布局管理器。它是相当于把容器分成一个一 个相等的格子,然后每个格子里面放一个组件。和 RowLayout有点相似,本节就介绍GridLayout的使用。 7.4.1 GridLayout的示例 一个GridLayout布局的例子。把空间分为3列,然后创 建六个按钮,从左到右依次排列。第四个按钮会自动换到下 一行显示。 在创建布局管理器的时候,将空间分为三列,在 GridLayout中,有两个构造方法,分别为带参数和不带参 数。 new GridLayout(int i ,Boolean b): new GridLayout() 7.4.2 GridLayout属性 1numColumns 2makeColumnsEqualWidth 3补白和间隔 4GridData 5.单单元格对齐对齐 方式 6.设设置组组件大小 7.设设置组组件最小宽宽度和高度 8.缩进缩进 9.格跨行和跨列显显示 10.抢抢占单单元格空间间 7.5 FormLayout 表格式布局管理器FormLayout使用非常灵活,功能和 GridLayout一样强大,使用FormLayout和使用 GridLayout可以完成同样的效果。与GridLayout不同的是 ,FormLayout通过设置FormData的四边的附加值来设置 控件的布局。 7.5.1 边距设置 边距设置使用marginWidth和marginHeight属性,设 置一个按钮。 FormLayout中的marginLeft、marginTop、 marginRight、marginBottom 、marginWidth、 marginHeight和spacing的属性和GridLayout使用方法相 同,不同点式 spacing属性的默认为0。 7.5.2 FormData 前面学了几种布局,其中都有Data,FormData和前面 所介绍过的类似,也是针对某一个组件进行的设置,创建一 个FormData对象时,需要制定四个边的位置 7.5.3 FormAttachment 在上面的例子中,使用到了FormAttachment类,它的 构造方法体现了本身的用法,它有两个构造方法: FormAttachment(int numerator,int offest):此方法 有两个整型的参数,例如FormAttachment(30,40),组件的 顶端保持在距离窗口顶端30%的位置,组件多向下偏移40个 像素。 FormAttachment(Control control int numerator,int offest):此方法有三个参数,第一个参数是传入的组件,第 二个参数是距离组件的偏移量,第三个组件是对其方式。例 如FormAttachment(Button ,20,SWT.NONE);如图7.33, 是此方法的使用效果图。 7.6 StackLayout堆栈式布局 StackLayout堆栈式布局有点类似于选项卡, StackLayout堆栈式布局只显示最上方的部件。Eclipse的 项目属性就是一个典型的堆栈式布局,在点击左边的不同选 项后,右边的窗口就会弹出不同的功能面板。 在堆栈式布局中,所有的面板都罗列到一起,但是只显 示最上面的一个,在使用时,只需要单击相关按钮,将对应 的面板调整到最上层。 在以上程序中,先创建一个窗口,再创建一个面板,创 建堆栈布局管理器,并将布局管理器应用于新创建的面板, 在面板中创建6个按钮,设置面板当前显示的是第0个按钮, 在窗口下方创建一个按钮“显示下一个按钮”,并为按钮创建 单击事件,使用内部类方法,计算下一个显示按钮的索引数 ,然后显示下一个按钮,重新刷新布局。 7.7 自定义布局管理器 前面学习的是SWT中已经定义好了的布局管理器,如 果自己去规定管理器的格式、布局,就需要用到自定义布局 管理器,本节就主要介绍一下自定义布局管理器的具体实现 。 7.7.1 原理 每个布局管理器都是Layout的子类,Layout是一个抽 象类。创建一个自定义布局管理器,要继承Layout类,并 实现其中的抽象方法。下面创建一个最简单的自定义管理器 SWTLayout,继承并实现Layout的方法。 其中,有两个方法: Point computeSize(Composite composite, int wHint, int hHint, boolean flushCache) void layout(Composite composite, boolean flushCache)创建一个自定义布局管理器,最主要的就是要 实现以上两个方法,然后再设定具体的布局方法。 7.7.2 主要方法 布局管理器的计算方法,需要使用到面板( Composite)和控件(Control)俩个类中涉及到位置的方 法: Point computeSize(int wHint,int hHint): Rectangle getBounds() setBounds(int x, int y, int width, int height) Rectangle getClientArea() Control getChildren() Layout getLayout() 7.8 可视化布局VE 在前面的学习中,都是使用手工进行组件的布局,如果 VE可视化插件,可以直接在面板上画出组件来,而不需要 在代码处修改组件的位置。本节就介绍一下VE的安装和使 用。 7.8.1 安装 首先,要去官方网站去下载VE插件,下载连接是 /tools/ve/downloads/drops/R- -200509071822/index.html,所用到的分别是 Visual Editor1.1、EMF 2.1.0和GEF三个文件,下载得到压 缩包。 安装的方法和前面讲到的插件安装方法相同个,在 Eclipse的目录下创建三个文件夹,分别是:emf、ve、gef ,将以上三个文件分别解压缩到这单个文件夹中。在links 文件夹中创建一个link文件,内容为: 在进行程序设计时,只需要将组件添加到可视化编辑区 进行编辑即可,如果需要另外设置组件的属性,可以在属性 视图进行编辑。系统会自动生成该控件的代码,大大简化了 工作量。但是,建议初学者进行手工编辑,打好基础。 7.8.2 创建一个SWT程序 在配置调试完VE后,接下来介绍如何创建SWT程序, 首先需要创建一个项目,步骤如下: (1)单击主菜单“新建”|“Visual Class”菜单项,弹出 “New Java Visual Class”对话框,输入类名“MySWT”, 并选择Style为“Shell” (2)创建完成后,弹出MySwt,并在可视化编辑区显 示一个Shell窗口,下面介绍一下可视化编辑环境的主要组 成。如图7.37。 7.8.3 设置布局 要设置窗口的布局,需要在属性视图中进行设置,步骤 如下: (1)选中“Shell”窗口,然后在属性视图中找到“Layout”, 在属性值中选择“GridLayout”,其中提供了所有的布局,也可以 为null。 (2)在工具栏中,单击按钮。弹出“Customize Layout”对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论