- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章1 布局管理器
8.3 布局管理器 GUI组件放置在容器内和布局管理分成功能独立的两部分。容器中可以放置GUI组件,但是容器本身并不管理已容纳GUI组件的布局。而利用布局管理器来管理GUI组件在容器中的布局. Java语言的java.awt包中定义了一个布局管理器接口LayoutManager,通过实现该接口可以实现组件的布局。 常用实现LayoutManager布局管理器接口的常用类有FlowLayout、BorderLayout、CardLayout、GridLayout、GridBagLayout。以及利用null布局管理方式实现手工布局。 8.3 布局管理器 1.流布局管理器 类FlowLayout是流布局管理器。这种管理器的特点是,组件在容器内依照指定方向按照组件添加的顺序依次加入到容器中。 这个指定方向取决于FlowLayout管理器的组件方向属性。该属性有两种可能:从左到右方向和从右向左方向。在默认情况下,这个指定方向是从左到右的。 许多的容器采用流布局管理器作为默认布局管理方式,如JPanel。 The FlowLayout Class 8.3 布局管理器 例8.13 FlowLayout的示例。程序清单见程序FlowLayoutExample.java,运行结果见图8-17. 8.3 布局管理器 2.边界布局管理器 AWT包的类BorderLayout可以创建边界布局管理器。边界布局管理器可以将容器分成东(BorderLayout.EAST)、西(BorderLayout.WEST)、南(BorderLayout.SOUTH)、北(BorderLayout.NORTH)、中(BorderLayout.CENTER )五个区域,这五个区域中最多可以放置一个GUI组件。GUI组件可以按照指定的位置在这五个区域中选择其一布局,如果没有指定位置放置GUI组件,边界布局管理器会将该组件放置到容器的中央位置(BorderLayout.CENTER)。边界布局管理器也是JFrame与JApplet的默认布局方式。 The BorderLayout Class 8.3 布局管理器 8.14 BorderLayout的示例。程序清单见程序BorderLayoutExample.java,运行结果见图8-18. BorderLayout Example 8.3 布局管理器 3.卡片布局管理器 卡片布局管理器能将容器中的组件看成不同的卡片层叠排列,每次只能显示一张卡片。每张卡片只能容纳一个组件。初次显示时,显示的是第一张卡片。卡片布局管理器是通过AWT包的类CardLayout来创建的。 CardLayout Using CardLayout 组件添加到容器中: add(Component c, String name) 例8.15 CardLayout的示例。程序清单见程序CardLayoutExample.java. 例如:CardLayoutFrameDemo 8.3 布局管理器 4.网格布局管理器 网格布局是一种常用的布局方式,将容器的区域被划分成矩形网格,每个矩形大小规格一致,组件可以放置在其中的一个矩形中。Java语言中通过java.awt.GridLayout类创建网格布局管理器对象,实现对容器中的各组件的网格布局排列。具体的排列方向取决于容器的组件方向属性,组件方向属性有两种:从左向右和从右向左。用户可以根据实际要求进行设定方向属性,默认的方向是从右向左。 指定网格中的行数和列数的规则 行数或列数可以为零,但不能两者都为零。若一个为零另一个不为零,不为零的行或列的大小已经固定,为零的行或列的大小由布局管理器动态地决定。 例如:指定一个网格有0行3列10个组件,就会创建3个固定的列和4个行,最后1行只包含一个组件。 若行数和列数都不为零,那么行数就是主导参数,即行数是固定的,布局管理器会动态计算列数。 例如,指定一个网格有3行3列10个组件,就会创建3个固定的行和4个列,最后1行包含2个组件。 8.3 布局管理器 例8.16 GridLayout的示例。程序清单见程序GridLayoutExample.java,运行结果见图8-20. 8.3 布局管理器5、GridBagLayout布局管理器 GridBagLayout布局: 将显示区域分成很多矩形小单元,每个组件可以占用一个或多个单元,从而可以指定每个组件所占空间的大小。 1. GridBagLayout的创建: GridBagLayout(): 创建默认的GridBagLayout布局。 (1)设置和组件有关的GridConstraints对象的属性来分配每个组件; (2)然后调用GridBagLayout的 setContraints()方
文档评论(0)