JavaGUI框架之SWT【布局FillLayout】

终于来到我最喜欢的部分——布局篇章。可以说布局就是SWT的灵魂。

布局如此重要,那么我们该怎么理解布局这个概念呢?我们以Button这个组件为例子,如果将他放在Shell上,那么他该定位在shell的哪个位置呢他的大小又该如何控制呢?这些都是布局控制的内容。

两种定位方式

绝对定位

绝对定位,通过代码的方式设置控件应该出现在容器的哪个位置。在SWT中,设置位置需要提供一个四元组(x, y, width, height)。具体如下所示

我们创建了一个Button,并通过setBounds方法定位button在shell中的位置

Button button = new Button(shell, SWT.PUSH);
button.setText("决定定位");
button.setBounds(100, 50, 200, 50);

在这里插入图片描述

tip: 需要注意的是绝对定位下,组件的布局不会随着窗口大小的变化而变化

托管定位

托管定位,编码人员无需手动设置组件的位置,只需要将组件放入容器面板中,组件的具体定位全部交由容器面板的布局(Layout)决定

在SWT框架中,托管定位常见的布局有如下5种:RowLayout,FillLayout,GridLayout,StackLayout,FormLayout

为了更好的理解布局这个概念,我们以搭积木为例。积木对应着SWT中的组件,如Button、Label、Text等。这些积木需要积木板来容纳,也就是容器面板。绝对定位的意思是,积木通过吸铁石固定在积木板上,通过对积木的设定,我们可以将积木定位在积木板上的任意位置;托管定位的意思是,我们将积木放在积木板上,积木会依据积木板已有的结构自动出在合适的位置,积木板已有的结构就像通道与卡槽,会让组件自动滑倒合适的位置而不需要编码人员手动控制。我们需要做的只是设置好积木板的结构,也就是布局Layout

FillLayout

FillLayout是托管布局的一种,也是最简单的布局方式。它的布局理念是尽可能的填充满容器,且保证容器内的组件大小均匀

如下所示,我们为Shell窗口分别创建了1个,3个Button,在FillLayout的影响下,Button填充满整个Shell,并且大小均匀。

在这里插入图片描述
在这里插入图片描述

布局方向

我们可以通过常量SWT来控制FillLayout的布局方向

常量描述图片
SWT.VERTICAL垂直布局在这里插入图片描述
SWT.HORIZONAL水平布局在这里插入图片描述

tip: 此处的SWT.VERTICAL , SWT.HORIZONAL针对的是shell的布局,不是Button组件的布局

布局留白

我们可以设置FillLayout的marginHeightmarginWidth属性控制组件四周留白

FillLayout fillLayout = new FillLayout(SWT.HORIZONTAL);
fillLayout.marginHeight = 20;
fillLayout.marginWidth = 50;
fillLayout.spacing = 10;
shell.setLayout(fillLayout);

在这里插入图片描述

  • 18
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值