Java布局管理器组件(3)

这种布局管理器有点像围棋盘,它将整个布局控件划分成若干行乘若干列的网格区域。组件就位于这些小的区域内,要想创建一个GridLayout布局管理器,就必须通过其构造器来创建GridLayout布局管理器对象。下面说明下其构造器。

GridLayout布局管理器的构造器说明
GridLayout()   构造一个组件之间没有间距的新边框布局  
GridLayout(int h,int v)   构造一个具有指定组件间距的边框布局,h、v是指行数和列数  

下面通过实例代码来熟悉一下GridLayout布局管理器的使用方法,其代码如下:

import javax.swing.*; import java.awt.*; /** * GridLayout * Created by veione on 5/9/16. */ public class GridLayoutCase { private static final int WIDTH=300; private static final int HEIGHT=200; public static void main(String[] args) { JFrame frame=new JFrame("GridLayout"); frame.setSize(WIDTH,HEIGHT); frame.setDefaultCloseOperation(Tools.EXIT_ON_CLOSE); Tools.centerWindow(frame); //内容面板 JPanel contentPane=new JPanel(); frame.setContentPane(contentPane); JButton hk=new JButton("港币"); JButton rmb=new JButton("人民币"); JButton dollar=new JButton("美元"); JButton euro=new JButton("欧元"); JButton pound=new JButton("英镑"); JButton mainBoard=new JButton("主板"); JButton memory=new JButton("内存"); JButton hardDisk=new JButton("硬盘"); JButton monitor=new JButton("显示器"); //创建网格布局管理器对象,指定3行3列 GridLayout gridLayout=new GridLayout(3,3); contentPane.setLayout(gridLayout); //将控件添加到内容面板中 contentPane.add(hk); contentPane.add(rmb); contentPane.add(dollar); contentPane.add(euro); contentPane.add(pound); contentPane.add(mainBoard); contentPane.add(memory); contentPane.add(hardDisk); contentPane.add(monitor); frame.pack(); frame.setVisible(true); } }

以上代码运行结果如下:

GridLayout运行示例

GridBagLayout

GridBagLayout是一种很先进的、很人性化的布局管理器,通过网格的划分,可以看到每个组件都占据一个网格,也可以一个组件占据几个网格。与GridLayout布局管理器不同的是,GridBagLayout是按照开发人员自己的思路来排列控件位置,而GridLayout布局管理器根据系统的安排来布局。如果要采用网格组布局管理器,一般可采用下列步骤:
1.创建一个GridBagLayout对象
2.将容器设成此对象的布局管理器
3.创建约束(GridBagConstraints)对象
4.创建各个相应的组件
5.添加各个组件与约束到网格组布局管理器中

网格组由多个网格组成,而且各个行或在列的长度和宽度不同。但默认情况下,单元格从左上角开始有序列的编号,从第0行、第0列开始计数。
    当向网格组布局管理器中添加组件时,需要分别定义每个单元格的序列号,只要设定相应的值,那么组件就会添加到网格组布局管理器中。涉及到组件被添加到什么位置有4个参数,即gridX、gridY、gridwidth、gridheight。其中,gridX、gridY分别定义了添加组件时左上角的行与列的位置,而gridwidth、gridheight分别定义了组件所占用的列数和行数。
  网格组布局管理器中每个区域都要设置增量字段(weightx与weighty分别代表x方向和y方向的增量)。如果想让某个区域保持初始化大小,也就是说窗口缩放不会引起组件缩放,那就应该设置该区域的增量为0,相反如果让组件能随时完全填充单元格,那增量字段就应该设置为100。这个布局管理器对象中还涉及到了两个参数,即fill和anchor。
  这两个参数都是非常重要的约束,其中当组件不能填满单元格时,fill参数就可以发挥作用。该约束的值主要有以下几种。
- GridBagConstraints.NONE:在每一个方向都不填充,即保持原状。
- GridBagConstraints.HORIZONTAL:只在水平方向上填充。
- GridBagConstraints.VERTICAL:只在垂直方向上填充。
- GridBagConstraints.BOTH:在两个方向上都填充。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/29309af9c4ff3a48525f10b652d17df8.html