- 1、本文档共57页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八讲 图形界面设计(三)
第八讲 图形界面设计(二) 布局管理器 界面布局管理 Java.awt包中共定义了五种布局编辑类,分别是: FlowLayout、CardLayout 、BorderLayout、GridLayout和GridBagLayout。 每个布局编辑类对应一种布局策略。 Javax.swing包中定义了4种布局编辑类,分别是: BoxLayout、OverlayLayout 、ScrollPaneLayout和ViewportLayout。 下面将讨论FlowLayout,BorderLayout,CardLayout,GridLayout和BoxLayout几种常用的布局策略。 Flow Layout布局管理器 FlowLayout的布局策略是将遵循这种布局策略的容器中的组件按照加入的先后顺序从左向右排列,当一行排满之后就转到下一行继续从左至右排列,每一行中的组件都居中排列。 FlowLayout的排版方式,就像流程或文本处理器在处理一段文字般,FlowLayout是java程序缺省使用的布局编辑策略。 与其他布局管理器不一样的是,Flow布局管理器不限制它所管理的组件的大小,允许它们有自己的最佳大小。 Flow布局管理器允许将组件左对齐或右对齐。如果想在组件之间创建一个更大的最小间隔,可以规定一个界限。当用户对由Flow布局管理的区域进行缩放时,布局就发生变化,如下图所示。 FlowLayout类有三个构造方法,分别是: (1) FlowLayout( ) 用于创建一个版面设定为居中对齐、各组件的水平及垂直间隔为5个像素点的FlowLayout类的对象。 FlowLayout(int align) 用于创建一个FlowLayout类的对象,版面按给出的align值对齐,各组件的水平及垂直间隔为5个像素。 align的值可以是FlowLayout.LEFT(左对齐)、FlowLayout.RIGHT(右对齐)、 FlowLayout.CENTER(居中对齐)方式。 FlowLayout(int align,int hgap,int vgap) 用于创建一个既指定对齐方式,又指定组件间间隔的FlowLayout类的对象。参数align作用及取值同上;参数hgap指定组件间的水平间隔;参数vgap指定各组件间的垂直间隔。间隔单位为像素点。 下面的例子就是如何用类容器的setLayout()方法来创建Flow布局对象并安装它们的。 setLayout(new FlowLayout(int align,int hgap, int vgap)); 对齐的值必须是FlowLayout.LEFT, FlowLayout.RIGHT或FlowLayout.CENTER。例如: setLayout(new FlowLayout(FlowLayout.RIGHT, 20, 40)); 对于一个原本不使用FlowLayout布局编辑器的容器,若需要将其布局策略改为FlowLayout,可以使用setLayout(new FlowLayout( ))方法,该方法是所有容器的父类Container的方法,用于为容器设定布局编辑器。 例 构造并安装一个新的Flow布局,它带有规定好的居中对齐方式和一个缺省的5单位的水平和垂直间隙。这个模块代码将几个按钮添加到框架中的一个Flow布局中。 FlowLayoutDemo.java import java.awt.*; public class FlowLayoutDemo { private Frame f; private Button button1, button2, button3; public static void main (String args[]) { FlowLayoutDemo mflow = new FlowLayoutDemo(); mflow.go(); } public void go() { f = new Frame (Flow Layout); f.setLayout(new FlowLayout()); button1 =
文档评论(0)