在本次教程中,偶讲一下在JDK组件布局管理器的使用方法。在JAVA中一共有7种布局方式:流式布局,网格布局,边界布局,卡面布局,网格包布局,盒式布局,自定义布局,它们是AWT包提供的。
布局管理器
·流式布局(FlowLayout)是JAVA小应用程序默认的布局管理方式,它是按组件加入容器的次序,按行一个按一个放置组件,当组件达到Applet右边界时,它就在下一行开始放置组件。在缺省状态下,FlowLayout管理器使组件对准每一行的中心。
·网络布局(GridLayout)是最简单的布局管理器,它把容器分成所需要的矩形网格,然后把你创建的组件放入每个格式,从左到右,自上向下的放置。
·边界布局(BorderLayout)管理器让你按东,南,西,北,中的方向来安置组件。
·卡片布局(CardLayout)管理器是创建如卡面盒之类的布局盒,然后从一种布局翻动到另一种布局。它形象的模拟了现实生活某些实例,如一个盒子里放置了许多东西,假设盒子只有一个口,那么你永远只能看到最上面的物件,只有当你拿走上面的物件后,下面的物件才会显示出来。就这样一层一层往下翻动,如此循环不休,一层一层的往下翻。
·盒式布局(BoxLayout)管理器跟卡面布局有些相似,不过它允许你在容器中水平或垂直的、并排的安排多个组件。
·网格包型(GridBagLayout)布局管理器是AWT提供的最灵活,最复杂,最常用的布局管理器之一,类似于网格布局,但它允许你把组件放在网格中任何行或列,也允许你的组件跨多行或多列。它是通过设置GridBagConstraints对象中的变量来约束组件布局的。
·自定义布局(null)管理器是通过组件本身的setBounds()方法来设置组件在容器中的位置,是最常用的布局管理器之一,相对于网格包型而言,还是非常简单的,只不过需要计算每个组件大小以及容器位置。
对于上面7种布局,偶不可能一一举例,那就以最常用的下面两种布局方式来跟大家介绍一下布局管理器,首先是网格包型。
网格包型布局方式,就是通过设置GridBagConstraints对象中的一些参数来达到有序的安排组件的效果,GridBagConstraints有:gridwidth,gridheight,anchor,fill,gridx,gridy,weightx,weighty等属性,通过给这些赋不同的值来改变组件排放位置。
gridwidth,gridheight指出组件的大小等它显示区域的大小,缺省值为1,可以修改这两个值来扩大组件的显示区域。但要注意的是,如果显示区域区域大小增加了,组件本身的大小是不会增加的。
anchor属性是显示区域内确定放置组件位置。其有效值为东,南,西,北,中,东南,东北,西南,西北,默认为中。
fill表示当组件小于它的显示区域时,设置它的填充方式。缺省为NONE(空),可以选择HORIZONTAL(水平)、VERTICAL(垂直)和BOTH。