AWT布局管理器
布局管理器
容器内可以存放各种组件,而组件的位置和大小是由容器内的布局管理器来决定的。在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布局管理器的更多相关文章
- learning java AWT 布局管理器 GridBagLayout
在GridBagLayout布局管理器中,一个组件可以跨越一个或多个网格,并可以设置各网格的大小互不相关. import java.awt.*; public class GridBagTest { ...
- learning java AWT 布局管理器 GridLayout
GridLayout布局管理器将容器分割成纵横线分格的网格,每个网格所占的区域大小相同. import java.awt.*; public class GridLayoutTest { public ...
- learning java AWT 布局管理器CardLayout
import javax.swing.*; import java.awt.*; import java.awt.event.ActionListener; public class CardLayo ...
- learning java AWT 布局管理器FlowLayout
AWT提供了FlowLayout 从左到右排列所有组件,遇到边界就会折回下一行重新开始. import java.awt.*; public class FlowLayoutTest { publ ...
- learning java AWT 布局管理器BorderLayout
BorderLayout 将容器分为EAST, SOUTH, WEST,NORTH,CENTER五个区域. public class BorderLayoutTest { public static ...
- Swing布局管理器介绍
创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhangjunhd.blog.51cto.com/113473/128174 当选 ...
- AWT和布局管理器
AWT(Abstract Window Toolkit)抽象窗口开发包 component:可以显示出来的与用户进行交互的图形元素 container:容纳其他component元素的容器:conti ...
- java基础 布局管理器
概念: 组建在容器(比如JFrame)中的位置和 大小 是由布局管理器来决定的.所有的容器都会使用一个布局管理器,通过它来自动进行组建的布局管理. 种类: java共提供了物种布局管理器:流式布局管理 ...
- Java Swing 第03记 布局管理器
几种Swing常用的布局管理器 BorderLaout 它将容器分为5个部分,即东.南.西.北.中,每一个区域可以容纳一个组件,使用的时候也是通过BorderLayout中5个方位常量来确定组件所在的 ...
随机推荐
- dubbo入门示例
前提准备: 在本次实验之前,需要准备一下几个包: Spring中的aop.beans.context.core.expression以及struts中的commons-logging.javassis ...
- 【VB6】使用VB6创建和访问Dom树【爬虫基础知识 】
使用VB6创建和访问Dom树 关键字:VB,DOM,HTML,爬虫,IHTMLDocument 我们知道,在VB中一般大家会用WebBrowser来获取和操作dom对象. 但是,有这样一种情形,却让我 ...
- 逆向分析AHpack
从暑假开始逆向研究也有一个半月了,今晚分析了一个压缩壳,第一次脱离书本逆向一个程序,放上来纪念一下. 其实像这种壳完全可以esp定律秒掉的,之所以分析它,是因为我想知道所谓IAT修复具体是怎么个算法, ...
- Replication
Peer-to-peer replication: http://msdn.microsoft.com/en-us/library/ms151196(v=sql.120).aspx Merge rep ...
- Python Quick list dir
昨天 Python释放了 3.5 ,添加了 os.scandir 根据文档该API比os.listdir快Docs which speeds it up by 3-5 times on POSIX s ...
- UEFI+GPT引导基础篇(一):什么是GPT,什么是UEFI?
其实关于UEFI的几篇文章很早就写下了,只是自己读了一遍感觉很不满意,就决定重写.目的是想用最简单直白的语言把内容写出来,让每个人都能轻松读懂.当然,如果你已经对这些内容有了很深的理解的话,这篇文章除 ...
- cron 定时器简单入门
cron:计划任务,是任务在约定的时间执行已经计划好的工作,根据配置文件约定的时间来执行特定的任务. 编写测试类继承 IJob ,实现Execute 此方法就是用于定时的任务 配置定时时间: 先创建w ...
- 【练习】数据移动---导出(EXPDP)
1.导出表: [oracle@host03 datadump]$ expdp scott/tiger directory=dir_dp dumpfile=emp.dmp tables=emp; Exp ...
- Spark Streaming源码解读之No Receivers彻底思考
本期内容 : Direct Acess Kafka Spark Streaming接收数据现在支持的两种方式: 01. Receiver的方式来接收数据,及输入数据的控制 02. No Receive ...
- PIC32MZ tutorial -- External Interrupt
In my older blog "PIC32MZ tutorial -- Key Debounce", I shows how to acheive key debounce w ...