布局管理器

容器内可以存放各种组件,而组件的位置和大小是由容器内的布局管理器来决定的。在AWT中为我们提供了以下5种布局管理器:

①   FlowLayout 流式布局管理器

②   BorderLayout 边界布局管理器

③   GridLayout 网格布局管理器

④   CradLayout 卡片布局管理器

⑤   GridBagLayout 网格包布局管理器

容器中组件的布局通常由布局管理器控制。每个Container(比如一个Panel或一个Frame)都有一个与他相关的缺省布局管理器,Panel容器默认的是FlowLayout,Frame容器默认的是BorderLayout,我们可以通过调用setLayout()来改变布局管理器;

可以通过设置空布局管理器,来控制组件的大小金和位置。可以调用setLayout(null)。

在设置空布局管理器后,必须对所有的组件调用setLocation(),setSize()或setBounds(),将它们定位在容器中。

流式布局管理器

 class MyFrame3 extends Frame {
public MyFrame3(String title) {
super(title);
} public void init() {
FlowLayout layout=new FlowLayout(FlowLayout.LEFT);//设置左对齐
this.setLayout(layout);
this.setBackground(Color.CYAN);
this.add(new Button("btn1"));
this.add(new Button("btn2"));
this.add(new Button("btn3"));
this.add(new Button("btn4"));
this.add(new Button("btn5"));
this.add(new Button("btn6"));
this.add(new Button("btn7"));
this.add(new Button("btn8"));
this.setSize(300, 300);
this.setVisible(true);
}
}

边界布局管理器

 class MyFrame4 extends Frame {
public MyFrame4(String title) {
super(title);
} public void init() {
this.setBackground(Color.CYAN);
this.add(new Button("btn1"),BorderLayout.EAST);
this.add(new Button("btn2"),BorderLayout.WEST);
this.add(new Button("btn3"),BorderLayout.NORTH);
this.add(new Button("btn4"),BorderLayout.SOUTH);
this.add(new Button("btn5"),BorderLayout.CENTER);
this.setSize(300, 300);
this.setVisible(true);
}
}

网格布局管理器

 class MyFrame5 extends Frame {
public MyFrame5(String title) {
super(title);
} public void init() {
GridLayout layout=new GridLayout(3,2);//创建一个3行2列的网格
this.setLayout(layout);
this.setBackground(Color.CYAN);
this.add(new Button("btn1"));
this.add(new Button("btn2"));
this.add(new Button("btn3"));
this.add(new Button("btn4"));
this.add(new Button("btn5"));
this.setSize(300, 300);
this.setVisible(true);
}
}

卡片布局管理器

 class MyFrame6 extends Frame {
private Panel cardPanel=null;
private Panel ctrolPanel=null;
private CardLayout cardLayout=null;
private FlowLayout flowLayout=null;
private Label lb1,lb2,lb3,lb4;
private Button btnFirst,btnPrevious,btnNext,btnLast;
private TextField txtContent;
public MyFrame6(String title) {
super(title);
} public void init() {
//创建2个面板容器
cardPanel=new Panel();
ctrolPanel=new Panel(); //创建2个布局管理器
cardLayout=new CardLayout();
flowLayout=new FlowLayout(); //给容器设置指定的布局管理器
cardPanel.setLayout(cardLayout);//卡片容器中放置卡片布局
ctrolPanel.setLayout(flowLayout);//控制容器放置流式布局 //声明创建4个标签控件和一个文本框控件
lb1=new Label("第一页内容",Label.CENTER);
lb2=new Label("第二页内容",Label.CENTER);
txtContent=new TextField();//编辑文本框
lb3=new Label("第四页内容",Label.CENTER);
lb4=new Label("第五页内容",Label.CENTER); //构建四个按钮对象
btnFirst=new Button("第一张");
btnPrevious=new Button("上一张");
btnNext=new Button("下一张");
btnLast=new Button("最后一张");
ctrolPanel.add(btnFirst);
ctrolPanel.add(btnPrevious);
ctrolPanel.add(btnNext);
ctrolPanel.add(btnLast); //把四个标签控件和一个文本框控件添加到卡片容器中
cardPanel.add(lb1);
cardPanel.add(lb2);
cardPanel.add(txtContent);
cardPanel.add(lb3);
cardPanel.add(lb4);
this.add(cardPanel,BorderLayout.CENTER);//将卡片容器放在中部
this.add(ctrolPanel,BorderLayout.SOUTH);//将控制容器放在南部
this.setSize(400, 300);
this.setVisible(true);
}
}

按钮事件的实现请查看下一篇...

AWT布局管理器的更多相关文章

  1. learning java AWT 布局管理器 GridBagLayout

    在GridBagLayout布局管理器中,一个组件可以跨越一个或多个网格,并可以设置各网格的大小互不相关. import java.awt.*; public class GridBagTest { ...

  2. learning java AWT 布局管理器 GridLayout

    GridLayout布局管理器将容器分割成纵横线分格的网格,每个网格所占的区域大小相同. import java.awt.*; public class GridLayoutTest { public ...

  3. learning java AWT 布局管理器CardLayout

    import javax.swing.*; import java.awt.*; import java.awt.event.ActionListener; public class CardLayo ...

  4. learning java AWT 布局管理器FlowLayout

    AWT提供了FlowLayout   从左到右排列所有组件,遇到边界就会折回下一行重新开始. import java.awt.*; public class FlowLayoutTest { publ ...

  5. learning java AWT 布局管理器BorderLayout

    BorderLayout 将容器分为EAST, SOUTH, WEST,NORTH,CENTER五个区域. public class BorderLayoutTest { public static ...

  6. Swing布局管理器介绍

    创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhangjunhd.blog.51cto.com/113473/128174 当选 ...

  7. AWT和布局管理器

    AWT(Abstract Window Toolkit)抽象窗口开发包 component:可以显示出来的与用户进行交互的图形元素 container:容纳其他component元素的容器:conti ...

  8. java基础 布局管理器

    概念: 组建在容器(比如JFrame)中的位置和 大小 是由布局管理器来决定的.所有的容器都会使用一个布局管理器,通过它来自动进行组建的布局管理. 种类: java共提供了物种布局管理器:流式布局管理 ...

  9. Java Swing 第03记 布局管理器

    几种Swing常用的布局管理器 BorderLaout 它将容器分为5个部分,即东.南.西.北.中,每一个区域可以容纳一个组件,使用的时候也是通过BorderLayout中5个方位常量来确定组件所在的 ...

随机推荐

  1. (推荐)WPF动画教程

    无意间发现博主的文章,记录推荐一下. http://www.cnblogs.com/alamiye010/archive/2009/06/17/1505346.html http://www.cnbl ...

  2. OS X升级El Capitan后,git difftool无法打开diffmerge的解决方法

    在git项目下执行git difftool,出现如下报错 /Library/Developer/CommandLineTools/usr/libexec/git-core/mergetools/dif ...

  3. flash builder4.7 for Mac升级AIRSDK详解

    使用flash builder 打包ANE时或者打包ipa时候常常会遇到AIRSDK版本低的问题,然而flash builder4.7默认使用的AIRSDK是3.4而flash builder4.7 ...

  4. rman datafile恢复(归档模式)

    模拟环境   1. 做操作之前先备份数据库 RMAN> run {   # Hot database level 0 whole backup   allocate channel t1 typ ...

  5. Linux下的shell编程(二)BY 四喜三顺

    Ctrl + Alt + T 打开终端, $代表普通用户,#代表超级用户(root user)如:    xiangqi@xiangqi ~$           root@xiangqi ~# ec ...

  6. 软件调试——IA-32 保护模式下寄存器一览

    最近在看张银奎先生的<调试软件>一书,想将关键的技术记录下来,以便日后查阅,也分享给想看之人吧. 1 通用寄存器 EAX,EBX,ECX,EDX:用于运算的通用寄存器,可以使用AX,BX等 ...

  7. ZeroC Ice 暂记

    摘自: http://weibo.com/p/1001603869896789339575 原文地址: http://www.oschina.net/question/865233_242146 吴治 ...

  8. 常见HTTP状态码(200、301、302、500等)

    HTTP状态码,它是用以表示网页服务器HTTP响应状态的3位数字代码.状态码的第一个数字代表了响应的五种状态之一. 1XX系列:指定客户端应相应的某些动作,代表请求已被接受,需要继续处理.由于 HTT ...

  9. linux 命令总结

    ①用find命令查找并删除文件 用脚本创建测试数据: [root@greymouster ceshidata]# for n in `seq 10`> do > date -s " ...

  10. SELinux查看、启用、关闭

    SELinux查看.启用.关闭 查看SELinux状态: 1./usr/sbin/sestatus -v      ##如果SELinux status参数为enabled即为开启状态 SELinux ...