About"Layout"

漂亮的布局至关重要,有时候功能实现,程序却丑的不堪入目,确实蛋疼无比。

 

以下是比较常见的layout:

 

 

特点
java.awt CardLayout 将组件象卡片一样放置在容器中,在某一时刻只有一个组件可见
java.awt FlowLayout 将组件按从左到右而后从上到下的顺序依次排列,一行不能放完则折到下一行继续放置
java.awt GridLayout 形似一个无框线的表格,每个单元格中放一个组件
java.awt BorderLayout 将组件按东、南、西、北、中五个区域放置,每个方向最多只能放置一个组件
java.awt GridBagLayout 非常灵活,可指定组件放置的具体位置及占用单元格数目
Javax.swing BoxLayout 就像整齐放置的一行或者一列盒子,每个盒子中一个组件
Javax.swing SpringLayout 根据一组约束条件放置子组件
Javax.swing ScrollPaneLayout 专用于JScrollPane,含一个Viewport,一个行头、一个列头、两个滚动条和四个角组件
Javax.swing OverlayLayout 以彼此覆盖的形式叠置组件
Javax.swing ViewportLayout JViewport的默认布局管理器

 

 

注意:

 

Flow Layout - 是Panel和Applet缺省的布局管理器。


Border Layout - 是Window和Dialog缺省的布局管理器,即也是Frame缺省的布局管理器。默认添加到center位置

 

Flow layout---管理器不对其component的大小加以限制,允许component保持其自然的尺寸,即"是多大就有多大"。

 

Border layout---一旦东南西北四个区被填充后,剩下的空间都留给中区。当窗口水平扩展时,北、南、中三区得到扩展,垂直扩展时,东、西、中三区得到扩展。对应Border布局管理器的五个区域,一般每个区域只能有一个component, 若在一个区域中加上多个component,则只有最后加上的那个是可见的。

 

Grid layout---当Grid布局管理器对应的窗口发生变化时,内部component的相对位置并不变化,只有大小发生变化。
Grid布局管理器总是忽略component倾向的大小(prefered size),它把每个component的大小设置成相同的。

 

 

如果想让组件的大小不随窗体大小改变而改变,用flowlayout。

 

 

 

 

 

 

 

 

 

 

另外一篇文章写得很好,推介一下:


http://mouer.iteye.com/blog/901068

 

 



你可能感兴趣的:(swing,Blog)