布局
GridBagLayout()
基本构造原型:public GridBagLayout();
GridBagLayout 是所有AWt布局管理器中,最复杂,同时它的功能也是最强大的。这种现象源于它所提供的众多的可配置选项,使用者几乎可以完全地控制容器的布局方式。下面了解一下其基本思想。
GridBagLayout从它的名字中,可以猜到,它同GridLayout一样,在容器中以网格形式来管理组件。但,GridBagLayout功能要比其强大得多。
1.GridBagLayout管理的所有行和列都可以是大小不同的。
2.GridLayout把每个组件先知道一个单元格内,而,GridBagLayout并不是这样:组件在容器中可以占据任意大小的矩形区域。
GridBagLayout通常由一个专用类来对它的布局行为进行约束,该类叫GridBagConstraints。其中,所有的成员都是public的,因此,要学好如何使用GridBagLayout,首先要了解有哪些约束变量,以及如何设置这些约束变量。注意:看起来有很多约束需要进行设计,但,事实上,许多约束只需设置一次,并对多个组件重用,每次添加组件时,只有少数的项需要修改。
实践总结:
在GridBagLayout中运用JTextField时候,GridBagLayout会忽略JTextField所指定的参数,按照GridBagLayout自己默认来修改JTextField的大小。不过,可以运用下列方法实现对JTextField的控制。方法如下:
JTextField jtfName;
Dimension preferredSize = new Dimension(200,30);//GridBagLayout会把这个属性加以运用
Dimension maximumSize = new Dimension(20,20);//GridBagLayout会把这个属性忽略
jtfName.setPreferredSize(preferredSize);
jtfName.setMaximumSize(maximumSize);
直观说明:
这里就是能够实现让GridBagLayout遵从我们的设定。将JTextField设定一个最大值,即,调用其setMaximumSize()方法,一旦我们调用了该方法,只要我们有调用了PreferedSize,那么GridBagLayout就会按照setPreferredSize()的方式进行绘制而忽略最大值。<具体原理还需探究>