Java程序设计:031805_布局管理器_第1页
Java程序设计:031805_布局管理器_第2页
Java程序设计:031805_布局管理器_第3页
Java程序设计:031805_布局管理器_第4页
Java程序设计:031805_布局管理器_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、 MLDN 软件教学研发部软件教学研发部JAVA 应用开发详解应用开发详解图形界面 布局管理器本章目标 了解布局管理器的作用 了解FlowLayout布局管理器 了解BorderLayout布局管理器 了解GridLayout布局管理器 了解CardLayout布局管理器 了解FlowLayout布局管理器 了解绝对定位布局管理器 使用布局管理器可以管理组件的显示位置,每当需要重新调整屏幕大小或重新绘制屏幕上任一项目时,都要用到布局管理器。 在Swing中使用的所有布局管理器都实现 LayoutManager接口,在Swing中主要使用以下五种常见的布局管理器: FlowLayout、Bord

2、erLayout、GridLayout、CardLayout、绝对定位。 FlowLayout FlowLayout属于流式布局管理器,使用此种布局方式,所有的组件会像流水一样依次进行排列, FlowLayout类的常用方法及常量如下 。No.方法及常量方法及常量类型类型描述描述1public static final int CENTER常量居中对齐2public static final int LEADING常量与容器的开始端对齐方式一样3public static final int LEFT常量左对齐4public static final int RIGHT常量右对齐5public

3、 static final int TRAILING常量与容器的结束端对齐方式一样6public FlowLayout()构造构造一个新的 FlowLayout,居中对齐,默认的水平和垂直间距是 5 个单位7public FlowLayout(int align)构造构造一个FlowLayout,并指定对齐方式8public FlowLayout(int align,int hgap,int vgap)构造指定对齐方式、水平、垂直间距设置FlowLayout package org.lxh.demo18.layoutdemo;import java.awt.FlowLayout;import

4、javax.swing.JButton;import javax.swing.JFrame;public class FlowLayoutDemo01 public static void main(String args) JFrame frame = new JFrame(Welcome To MLDN) ; / 实例化窗体对象/ 设置窗体中的布局管理器为FlowLayout,所有的组件居中对齐,水平和垂直间距为3frame.setLayout(new FlowLayout(FlowLayout.CENTER, 3, 3);JButton but = null;for (int i = 0

5、; i 9; i+) but = new JButton(按钮 - +i) ;frame.add(but) ;/ 加入按钮frame.setSize(280,123) ;/ 设置窗体大小frame.setVisible(true) ;/ 设置窗体可见BorderLayout BorderLayout将一个窗体的版面划分成东、西、南、北、中五个区域,可以直接将需要的组件放到这五个区域中即可。BorderLayout类的常用方法及常量 No.方法及常量方法及常量类型类型描述描述1public static final String EAST常量将组件设置在东区域2public static fin

6、al String WEST常量将组件设置在西区域3public static final String SOUTH常量将组件设置在南区域4public static final String NORTH常量将组件设置在北区域5public static final String CENTER常量将组件设置在中区域6public BorderLayout()构造构造没有间距的布局器7public BorderLayout(int hgap,int vgap)构造构造有水平和垂直间距的布局器设置BorderLayout package org.lxh.demo18.layoutdemo;impo

7、rt java.awt.BorderLayout;import javax.swing.JButton;import javax.swing.JFrame;public class BorderLayoutDemo01 public static void main(String args) JFrame frame = new JFrame(Welcome To MLDN) ; / 实例化窗体对象/ 设置窗体中的布局管理器为BorderLayout,所有的组件水平和垂直间距为3frame.setLayout(new BorderLayout( 3, 3);frame.add(new JBut

8、ton(东(EAST)), BorderLayout.EAST);frame.add(new JButton(西(WEST)), BorderLayout.WEST);frame.add(new JButton(南(SOUTH)), BorderLayout.SOUTH);frame.add(new JButton(北(NORTH)), BorderLayout.NORTH);frame.add(new JButton(中(CENTER)), BorderLayout.CENTER);frame.pack() ;/ 根据组件自动调整窗体大小frame.setVisible(true) ;/ 设

9、置窗体可见GridLayout GridLayout布局管理器是以表格的形式进行管理的,在使用此布局管理器的时候必须设置显示的行数和列数,常用的方法如下所示。 No.方法方法类型类型描述描述1public GridLayout(int rows,int cols)构造构造一个指定行和列的布局管理器2public GridLayout(int rows,int cols,int hgap,int vgap)构造构造时指定行和列、水平和垂直间距设置GridLayout package org.lxh.demo18.layoutdemo;import java.awt.GridLayout;impo

10、rt javax.swing.JButton;import javax.swing.JFrame;public class GridLayoutDemo01 public static void main(String args) JFrame frame = new JFrame(Welcome To MLDN) ; / 实例化窗体对象/ 设置窗体中的布局管理器为GridLayout,按33排列,水平和垂直间距为3frame.setLayout(new GridLayout(3, 5, 3, 3);JButton but = null;for (int i = 0; i 13; i+) bu

11、t = new JButton(按钮 - +i) ;frame.add(but) ;/ 加入按钮frame.pack() ;/ 根据组件自动调整窗体大小frame.setVisible(true) ;/ 设置窗体可见CardLayout CardLayout就是将一组组件彼此重叠的进行布局,就像一张张卡片一样,这样每次只会展现一个界面。CardLayout类的常用方法 No.方法方法类型类型描述描述1public CardLayout()构造构造CardLayout对象,各组件间距为02public CardLayout(int hgap,int vgap)构造构造CardLayout对象,指

12、定组件间距3public void next(Container parent)普通翻转到下一张卡片4public void previous(Container parent)普通翻转到上一张卡片5public void first(Container parent)普通翻转到第一张卡片6public void last(Container parent)普通翻转到最后一张卡片7public void show(Container parent,String name)普通显示具有指定组件名称的卡片设置CardLayout package org.lxh.demo18.layoutdemo;

13、import java.awt.CardLayout;import java.awt.Container;import javax.swing.JFrame;import javax.swing.JLabel;public class CardLayoutDemo01 public static void main(String args) JFrame frame = new JFrame(Welcome To MLDN) ; / 实例化窗体对象Container cont = frame.getContentPane() ;/ 取得窗体容器CardLayout card = new Car

14、dLayout() ;/ 定义布局管理器frame.setLayout(card);/ 设置布局管理器cont.add(new JLabel(标签-A,JLabel.CENTER),first) ;cont.add(new JLabel(标签-B,JLabel.CENTER),second) ;cont.add(new JLabel(标签-C,JLabel.CENTER),third) ;cont.add(new JLabel(标签-D,JLabel.CENTER),Fourth) ;cont.add(new JLabel(标签-E,JLabel.CENTER),fifth) ;frame.p

15、ack() ;/ 根据组件自动调整窗体大小frame.setVisible(true) ;/ 设置窗体可见card.show(cont, third) ;/ 显示第三张卡片for (int i = 0; i 5; i+) / 循环显示每张卡片try Thread.sleep(3000) ;/ 加入显示延迟 catch (InterruptedException e) card.next(cont) ;/ 从容器中取出组件绝对定位 如果不想在窗体中指定布局管理器,也可以通过设置绝对坐标的方式完成,在Component中提供了setBounds()方法,可以定位一个组件的坐标,使用X、Y的坐标表示

16、方式,此方法定义如下: public void setBounds(int x,int y,int width,int height)使用绝对定位排版 package org.lxh.demo18.layoutdemo;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;public class AbsoluteLayoutDemo01 public static void main(String args) JFrame frame = new JFrame(Welcome To MLDN) ; / 实例化窗体对象frame.setLayout(null);/ 使用绝对定位JLabel title = new JLabel() ;/ 建立标签对象JButton enter = new JButton(进入) ;/ 建立按钮对象JButton help = new JButton(帮助) ;/ 建立按钮对象fra

温馨提示

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

最新文档

评论

0/150

提交评论