JAVA多层布局_Java图像绘制之五大布局管理器

在Swing中,每个组件都得给它放置在容器中合适的位置,展示在容器中的方法及基本的布局功能。下面码农工就为大家介绍一下他们的功能和用法。

a458094761f052f4ccf5ebc5732c69ac.png

一、边框布局管理器

当窗体不指定布局类型是,Swing组件的布局方式默认为边界(BorderLayout)布局管理器,也叫边框布局管理器,布局管理器将容器划分为东西南北中五个区域,当容器调用Container类的add()方法时,可以将组件添加到你想要放置的区域,只需调用BorderLayout类中的以下成员变量即可:

BorderLayout.NORTH

BorderLayout.SOUTH

BorderLayout.EAST

BorderLayout.WEST

BorderLayout.CENTER

f5c6afe62bbc9b7680ca222a5e73c542.png边界布局管理器

二、流式布局管理器

它是最基本的布局管理器,所谓的流式布局管理器,顾名思义,像流水一样地按顺序从左到右,从上到下,默认每一行都为居中排列,但也可以自行设置。FlowLayout类中有以下构造方法:

public FlowLayout()

public FlowLayout(int alignment)

public FlowLayout(int alignment,int horizGap,int vertGap)

其中的alignment参数表示使用流式布局管理器后组件在每一行的摆放位置。其中的horizGap与vertGap两个参数分别以像素为单位指定组件之间的水平间隔与垂直间隔。

047551aa4922af5d3098724f748a3ce2.png流式布局管理器

三、网络布局管理器

顾名思义,它是将容器划分为一个个相同大小的网格,并且空格的个数由网格的行数与列数决定。它主要有以下常用的构造方法:

public GridLayout(int rows, int columns)。

public GridLayout(int rows, int columns, int horizGap, int vertGap)

上述参数rows与columns参数表示网格的行数与列数,这两个参数只有一个可以为0,代表一行或者一列的多个组件,参数horizGap和vertGap分别指定网格之间的水平距离和垂直距离。

903bb7b34f3e1c9a0c7381ca4e663d3d.png网络布局管理器

四、网络组布局管理器

网络组布局管理器由GridBagLayout类实现,它实现了一个动态的矩形网格,在网络组布局管理器中默认的布局方式为流式布局。

下面讲解一下GridBagLayout类中的各个属性及用法:、

(1):gridx和gridy

它们分别设置组件起始位置所在单元格行数与列数的索引值。

(2):gridwidth和gridheight

它们分别用来设置组件占用网络组的行数与列数(即宽度和高度)。

(3):anchor属性

用来设置组件在其所在显示区域的显示方位(一个9个方位,比地图上多了一个“中心”)。

(4):fill

用来设置组件的填充方式,当单元格显示区域的面积大于组件面积时,显示组件可能不必占用所有的显示区域。指定组件填充网格的方式,可以是如下值:GridBagConstraints.NONE(默认值)、GridBagConstraints.HORIZONTAL(组件横向充满显示区域,但是不改变组件高度)、GridBagConstraints.VERTICAL(组件纵向充满显示区域,但是不改变组件宽度)以及 GridBagConstraints.BOTH(组件横向、纵向充满其显示区域)。

(5):ipadx和ipady

这个属性用来修改组件的首选大小。为正数,则在首选的基础上正大指定的宽度和高度;为负数,则在首选的基础上减小指定的宽度和高度。

(6):insets

指定组件显示区域的外部填充,即组件与其显示区域边缘之间的空间,默认组件没有外部填充。

(7):weightx和weighty

用来指定在容器大小改变时,增加或减少的空间如何在组件间分配,默认值为 0,即所有的组件将聚拢在容器的中心,多余的空间将放在容器边缘与网格单元之间。weightx 和 weighty 的取值一般在 0.0 与 1.0 之间,数值大表明组件所在的行或者列将获得更多的空间。

eb31c71a65f19b6f5a2ff08580cc0a59.png网络组布局管理器

五、卡片布局管理器

CardLayout(卡片布局管理器)能够帮助用户实现多个成员共享同一个显不空间,并且一次只显示一个容器组件的内容。

CardLayout 布局管理器将容器分成许多层,每层的显示空间占据整个容器的大小,但是每层只允许放置一个组件。CardLayout 的构造方法如下。

CardLayout():构造一个新布局,默认间隔为 0。

CardLayout(int hgap, int vgap):创建布局管理器,并指定组件间的水平间隔(hgap)和垂直间隔(vgap)。

6cecce90315ef15cd7c4c2c3e5fff874.png卡片布局管理器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值