布局管理器的总结

关于布局管理器,可谓是比较纠结的事情,苦苦挣扎了好久,现在就布局管理器,我有自己的一些想法,给大家分享一下:

就拿XP画图板来说,你说,一个好好的窗体,为啥要这个贴一块,那个补一块呢,这不是给自己添堵嘛!确实,一开始,我也搞不明白,后来,在开发中,渐渐地发现了贴面板的好处。

一方面:我们知道java有一个很大的优点,那就是可移植性,我们完成一个项目,往往需要很多人来完成,而且,每个人的思路和方法不同,如果,只在一个JFrame窗体上面的话,造成的后果就是,很难移植,带来了不便理性。但是要是用贴面板的方法的话,就可以很方便的将别人的代码拿过来,作为自己的来用,带来了方便。总的来说,就是,我们一开始只有一个窗体,后来,可以再上面利用贴面板的方式,来组装,几块面板一贴,妥了,一个画图板完成了,就像是,面板其实就是一个载体。

另一方面,就是涉及到布局的问题了,我们知道,我们常用的布局管理器,大概有BorderLayout, FlowLayout, GridLayout这三种,如果说,我们用到的组件很多的话,不可能在一个窗体上,设置很多布局,一个布局显得有很困难,所以,还是,贴贴的好,贴贴更省心。

下面我大致说一下,我们常用的LayoutManager,我们知道,LayoutManager是一个接口,所有的布局管理器都是其实现类。

1FlowLayout

 

 

FlowLayout的构造方法

FlowLayout()
构造一个新的 FlowLayout,它是居中对齐的,默认的水平和垂直间隙是 5 个单位。

 

FlowLayout(int align)
构造一个新的 FlowLayout,它具有指定的对齐方式,默认的水平和垂直间隙是 5 个单位。

 

FlowLayout(int align, int hgap, int vgap)
创建一个新的流布局管理器,它具有指定的对齐方式以及指定的水平和垂直间隙。

 

各个参数的意义:

align - 对齐值

hgap - 组件之间以及组件与 Container 的边之间的水平间隙

vgap - 组件之间以及组件与 Container 的边之间的垂直间隙

 

2BorderLayout

 

BorderLayout的构造方法

BorderLayout()
构造一个组件之间没有间距的新边框布局。

 

BorderLayout(int hgap, int vgap)
构造一个具有指定组件间距的边框布局。

 

 

各个参数的意义:

hgap - 组件之间以及组件与 Container 的边之间的水平间隙

vgap - 组件之间以及组件与 Container 的边之间的垂直间隙

 

了解了这些,最重要的来了,这些布局管理器该怎么用呢,这确实是个疑问:

首先,我们要了解,我们常用的容器,在GUI初级开发中,现在我用到的都是JComponent的子类,我现在用到的就以下几个,JFrameJWindowJPanelJLable,JTable等,其他的可以查阅JDK帮助文档,

 

对于JFrameJWindow这样的顶层框架来说,默认的布局管理器是边界布局(BorderLayout)JPanel默认的布局管理器为FlowLayout

如果说,我们要替换原来的布局管理器,怎么办呢?

(1)创建布局管理器对象,用它的对象,对象名.setLayout(传入相应的参数),就可以了;

(2)此外,我们还可以这么办,不用布局管理器,setLayout(null);取消布局管理器,然后调用,setBounds(int x, int y, int width, int height)移动组件并调整其大小。由 x y 指定左上角的新位置,由 width height 指定新的大小

到这里,布局管理器的基本用途就是这个样子了哈,有什么好的方法一起分享哈!

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值