第十七讲AWT高级设计.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第16讲 图形用户界面㈡ 布局管理器 事件驱动设计 AWT高级组件(一) 教学目标 掌握布局管理器的使用 理解事件驱动机制 掌握事件驱动设计方法 掌握AWT高级组件的应用 布局管理器 在前面课程的学习中,经常会发生这样的情况,当将很多的组件放在容器里面的时候,这些组件摆放将很凌乱,有时候甚至看不见部分组件。这是因为没有对这些组件进行布局管理。 AWT提供了5个类来对容器页面进行管理,它们均直接继承自java.lang.Object类。 FlowLayout(流式布局) BorderLayout (边界布局) GridLayout(网格布局) CardLayout (多层/卡片布局) GridBagLayout(动态网格布局) 布局管理器 -FlowLayout FlowLayout是Applet和Panel容器的默认布局管理器,它按照从上到下、从左到右的规则,将添加到容器中的组件依次排列,默认情况下每行组件均居中排列。 自动调用组件的getPreferredSize()方法,使用组件的最佳尺寸来显示组件。 FlowLayout的构造函数: FlowLayout( ):居中对齐方式,组件间的水平和竖直间距为缺省值5个象素。 FlowLayout(int alignment):可以设定每一行组件的对齐方式 FlowLayout(int alignment,int horz,int vert):可以设定组件间的水平和垂直距离 FlowLayout示例 布局管理器 -BorderLayout BorderLayout是Windows及其子类Frame的默认布局管理器,它将容器分为5个部分,分别命名为NORTH、SOUTH、WEST、EAST和CENTER。 下面是BorderLayout所定义的构造函数: BorderLayout( ):生成默认的边界布局 BorderLayout(int horz,int vert):设定组件间的水平和垂直距离 用add()方法往容器中添加组件时必须指明添加的位置,若没有指明放置位置,则表明为默认的“Center”方位。 若每个区域或若干个区域没有放置组件,东西南北区域将不会有预留,而中间区域将置空。 BorderLayout示例 布局管理器 -GridLayout GridLayout是一种很容易理解的布局管理器,它将容器按照指定的行数、列数分成大小均匀的网格,然后将添加到容器里面的组件一一放入。 GridLayout的构造函数如下所示: GridLayout():生成一个单列的网格布局 GridLayout(int row,int col):生成一个设定行数和列数的网格布局 GridLayout(int row,int col,int horz,int vert):可以设置组件之间的水平和垂直间隔 GridLayout示例 布局管理器 -CardLayout CardLayout是一种将每个组件看作一张卡片,且将所有卡片码成一摞,每一时刻只有一张卡片被显示的布局管理器。有人将其形象地描述为一副落成一叠的扑克牌。第一个添加到容器中的组件位于最低层,最后一个添加到容器中的组件位于最上层。请参考API文档熟悉CardLayout类的构造方法和常用方法。 布局管理器 -GridBagLayout GridBagLayout生成的布局管理器也是和GridLayout一样是使用网格来进行布局管理的。所不同之处在于GridBagLayout可以通过类GridBagConstraints来控制布局容器内各组件的大小,每个组件都使用一个GridBageConstraints对象来给出它的大小和摆放位置,这样就可以按照设计者的意图,改变组件的大小,把它们摆在设计者希望摆放的位置上。这种灵活性是前面几个布局管理器所不具备的。有关GridBageLayout布局管理器使用的详细情况参阅API文档。 容器的嵌套 实际应用中,可能将整个窗口分成很多小块,每一块包含几个组件,这些组件用一个容器来存放,然后再将这些小块容器添加到窗口对象中。AWT就提供了另外一个容器类Panel。可以在一个容器中添加几个Panel容器对象,每个Panel容器对象都可以指定不同的布局方式。 Panel示例 事件驱动设计 事件驱动设计 在窗口程序设计里,事件(event)的设计是不可或缺的一块。当按下按钮时,也就触发了“按钮被按”的事件,至于计算机要做什么样的反应,则是由程序代码来做判断与决定的。前面已经学会来怎样去绘制一个图形用户界面,但是还没有编写用户交互的代码。下面来认识一下Java的事件处理机制。 每发生一个事件,程序都需要作出相应的响应,这称为事件处理。 委派事件模型 事件处理机制的思想是:可能产

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档