行健网络

?找回密码
?立即注册
查看: 2655|回复: 3
打印 上一主题 下一主题

[图形界面] java图形用户界面编程(awt/swing)布局管理器之二:BorderLayout

[复制链接]
跳转到指定楼层
楼主
发表于 2014-5-25 08:41:39 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
? ?? ? BorderLayout布局管理器将容器分为EAST、SOUTH、WEST、NORTH、CENTER五个区域,普通组件被放置在这五个区域中任意一个,其布局示意图如下:

? ?? ? 当改变使用BorderLayout布局的容器大小时,NORTH、SOUTH和CENTER区域水平调整而EAST、WEST和CENTER垂直调整。使用该布局有以下几个注意点:
? ?? ? 1、根据其首选大小和容器大小的约束 (constraints) 对组件进行布局
? ?? ? 2、当向使用该布局的容器中添加组件时,需要指定添加到哪个区域里。如果没有指定默认添加到CENTER区域里。
? ?? ? 3、如果向同一个区域中添加多个组件时,后放入的组件会覆盖前面的组件。
? ?? ? 4、Frame、Dialog、ScrollPane默认使用BorderLayout布局管理器。
? ?? ? 5、除支持上面一个绝对定位常量外,还支持相对定位常量PAGE_START、PAGE_END、LINE_START和LINE_END。当容器的ComponentOrientation属性设置为ComponentOrientation.LEFT_TO_RIGHT的容器中,这些常量分别映射到NORTH、SOUTH、WEST和EASE
? ?? ? 6、为了与以前的版本兼容,BorderLayout 还包括相对定位常量 BEFORE_FIRST_LINE、AFTER_LAST_LINE、BEFORE_LINE_BEGINS 和 AFTER_LINE_ENDS。这些常量分别等同于 PAGE_START、PAGE_END、LINE_START 和 LINE_END。为了与其他组件使用的相对定位常量一致,应优先使用后一组常量。
? ?? ? 两个构造器:
? ?? ? 1、BorderLayout():构造一个组件之间没有间距的新边框布局。
? ?? ? 2、BorderLayout(int hgap, int vgap):构造一个具有指定组件间距的边框布局。
? ?? ? 常用方法有:
? ?? ? 1、addLayoutcomponent(Component comp,Object constraints):使用指定的约束对象将指定组件添加到布局中。
? ?? ? 2、getConstraints(Component comp):获取指定组件的约束。
? ?? ? 3、getHgap():返回组件之间的水平间距。
? ?? ? 4、getLayoutAlignmentX(Containerparent):返回沿x轴的对齐方式。
? ?? ? 5、getLayoutAlignmentY(Containerparent):返回沿y轴的对齐方式。
? ?? ? 6、getLayoutComponent(Containertarget, Object constraints):基于目标Container的组件方向,返回给定约束位置对应的组件。
? ?? ? 7、getLayoutComponent(Objectconstraints):获取使用给定约束添加的组件。
? ?? ? 8、getVgap():返回组件之间的垂直间距。
? ?? ? 9、invalidateLayout(Container target):使而已无效,指示如果布局管理器缓存了信息,则应该将其丢弃。
? ?? ? 10、layoutContainer(Container target):使用此边框布局对容器参数进行布局。
? ?? ? 11、maximumLayoutSize(Container target):在给定目标容器中的组件的前提下,返回此布局的最大尺寸。
? ?? ? 12、minimumLayoutSize(Container target):使用此布局管理器确定target容器的最小大小。
? ?? ? 13、preferredLayoutSize(Containertarget):基于容器中的组件,使用此布局管理器确定target容器的首先大小。
? ?? ? 14、removeLayoutComponent(componentcomp):从此边框布局中移除指定组件。
? ?? ? 15、setHgap(int hgap):设置组件之间的水平间距。
? ?? ? 16、setVgap(int vgap):设置组件之间的垂直间距。
? ?? ? 17、toString():返回此边框布局的状态的字符串表示形式。

沙发
?楼主| 发表于 2014-11-13 13:10:01 | 只看该作者

best365还可以买足彩吗“根据其首选大小和容器大小的约束 (constraints) 对组件进行布局”。也就是说处于拥有该布局管理器的容器中的组件是不能用setSize()与setBound()方法来设置其大小与位置的,而是由布局管理器根据该组件的首选大小与包含该组件容器的大小自行进行布局管理。

当要设置该组件的大小时,可以使用setPreferredSize()方法来设置组件的首选大小。


要使用setSize与setBound方法来设置组件的大小与位置,必须得先取消它所在容器组件的默认布局管理器setLayout(null)。这样处于该容器中的任何组件都需要你自己布局了。

板凳
?楼主| 发表于 2014-11-13 13:35:12 | 只看该作者

在BorderLayout布局管理器的五个区域中,SOUTH与NORTH可以在水平方向上进行拉伸,EAST与WEST可以在垂直方向上拉伸,CENTER水平与垂直方向上俱可以拉伸。它是指处于这个区域当中的组件的大小会在上述规定方向上自动填充剩余空间。

其实从上面的布局示意图也可以看得出来,我每个区域中放入一个按钮,在north与south区域中的按钮水平方向上拉伸了,在east与west方向的按钮垂直方向上拉伸了,而在center区域中的按钮两个方向上俱拉伸了。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|网站地图|行健网络

GMT+8, 2019-10-16 11:14 , Processed in 0.065981 second(s), 16 queries .

Powered by Discuz! X3.2

? 2001-2013 Comsenz Inc.

快速回复 返回顶部 best365还可以买足彩吗