欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    java入门到精通第7章.ppt

    • 资源ID:70791559       资源大小:333.97KB        全文页数:22页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    java入门到精通第7章.ppt

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

    注意事项

    本文(java入门到精通第7章.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开