AWT&Swing(一)-布局管理器

本文详细介绍了Java中GUI布局管理器的种类及其特性,包括FlowLayout、BorderLayout、GridLayout、GridBagLayout、CardLayout和BoxLayout的使用方法及注意事项,帮助读者深入理解并灵活运用布局管理器进行图形用户界面设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、GUI(Graphics User Interface)图形用户界面

AWT(Abstract Window Toolkit)抽象窗口工具集


2、AWT的类之间的构造关系

210817_bo5P_1791969.png

Panel:


ScrollPane:

    


3、布局管理器

        管理组件在容器中的布局,避免了直接设置组件的位置和大小。

        所有的AWT容器都有默认的布局管理器



名称

特点

构造器

注意

FlowLayout

向某方向依次排列,到头就折回,默认从左向右

FlowLayout():默认对齐方式创建

FlowLayout(int align):指定对齐方式

FlowLayout(int align,int hgap,int vgap):指定对齐方式和指定垂直间距、水平间距


BorderLayout

将容器分为五个区域

210858_tT8V_1791969.png

BorderLayout():使用默认的水平距离和垂直距离创建


BorderLayout(int hgap,int vgap):指定水平间距和垂直间距创建此布局管理器

hgap:水平间距

vgap:垂直间距

1:需要指定添加到哪个区域;如果没有指定默认添加到中间

2:如果向同一区域添加多个组件,后来的会把原来的覆盖掉

GridLayout

将容器分割成网格

默认从左向右、从上到下依次添加到每个网格中

添加的组件的大小由其所在的区域来决定

GridLayout(int rows,int cols):指定行数列数

GridLayout(int row,int cols,int hgap,int vgap):指定行数、列数、横向间距、纵向间距


GridBagLayout

一个组件可以跨越一个或多个网格

可以设置各个网格的大小互不相同

使用GridBagConstraints对象来控制组件(可以重复使用)

GridBagConstraints的属性介绍:

详见下表

???

CardLayout

以时间来管理它里面的组件

将放入容器的组件看成一叠卡片,只能看到最上面的那个

CardLayout()

CardLayout(hgap,vgap):指定卡片与容器的左右hgap边界的距离和上下vgap边界的距离

first():第一张

last():最后一张

previous():前一张

next():后一张

show():指定一张

BoxLayout

可以在垂直和水平方法上摆放组件

通常和Box容器组合使用


BoxLayout(Container,int axis):按照axis方向排列:BoxLayout.X_AXIS(横向)BoxLayout.Y_AXIS(纵向)

Box容器

createHorizontalBox():创建水平容器

createVericalBox():创建垂直容器

X_AXIS:横向

Y_AXIS:纵向

210911_mEh7_1791969.png



GridBagConstraints属性介绍

属性含义特殊值

gridx/gridy

受控组件的位置:

组件左上角在网格横纵向的索引数

RELATIVE:紧跟上一个组件

gridwidth/gridheight

受控组件横纵向跨越多少个网格

REMAINDER:横纵向最后一个组件

RELATIVE:横纵向倒数第二个

fill

受控组件如何占据空白区域

NONE:不扩大

HORIZONTAL:水平扩大以占据空白区域

VERTICAL:垂直扩大以占据空白区域

BORTH:水平、垂直同时扩大以占据空白区域

ipadx/ipady

受控对象控制的组件横纵向填充的大小??

insets

受控组件外部填充的大小

anchor

受控组件在其显示区域中的定位方式

CENTER:居中

NORTH:上中/NORTHWEST:上左/NORTHEAST:上右

SOUTH:下中/SOUTHWEST:下左/SOUTHWEST:下右

WEST:左中

EAST:右中

weighx/weighy

受控组件占据多余空间的水平、垂直增加比例

也叫权重



Box的方法

方法名称

作用

createHorizontalBox()

创建水平排列的Box容器

createVerticalBox()

创建垂直排列的Box容器

createHorizontalGlue()

创建一条水平Glue(可在两个方向上同时拉伸距离)

createHorizontalStrut(int weith)

创建一条指定宽度的水平Strut(不可拉伸)

createVerticalGlue()

创建一条垂直Glue(可在两个方向上同时拉伸距离)

createVerticalStrut(int height)

创建一条指定高度的垂直Strut(不可拉伸)

createRigidArea(Dimension d)???

创建指定宽度、高度的RigidArea(不可拉伸)

4、对话框

    注意:

            (1)对话框通常以来==依赖于其他窗口

            (2)对话框分为模式和非模式两种,

注意:

(1)对话框通常以来==依赖于其他窗口

(2)对话框分为模式和非模式两种,

         模式:当某个模式Dialog打开之后,总是位于它依赖的窗口只上,在模式对话框关闭之前它所依赖的窗口无法获得焦点


构造器的参数:

ower:   指定Dialog所依赖的窗口,既可以是窗口也可以是对话框

title:     指定Dialog的窗口标题

model: 指定Dialog是否是模式的(true or false)

子类:FileDialog
文件对话框

参数:

         (1)parent:   所属父窗口

         (2)title:       对话框标题

         (3)mode:    FileDialog.LOAD—打开文件;FileDialog.SAVE—保存文件

    




转载于:https://my.oschina.net/u/1791969/blog/491566

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值