GridBagLayout布局 java swing

来源:互联网 发布:js cookie存取 编辑:程序博客网 时间:2024/04/20 09:24

使用网格包布局的一般步骤为:

1、创建一个GridBagLayout网格包布局对象,并使其成为当前容器的布局管理器。

2、创建一个GridBagConstraints类型的约束对象,然后使用该对象设置各种约束条件,注意这里设置的约束条件并没有针对某一组件,要使某一组件具有设置的约束,需要使用第3步骤的方法。

3、然后使用GridBagLayout网格包布局中的setConstraints(Component com, GridBagConstraints cons)方法将GridBagConstraints类型对象设置的约束添加到被设置的组件中,这样该组件就具有了GridBagConstraints设置的约束。其中setConstraints()的第一个参数是将要添加的组件,第二个参数是GridBagConstraints类型的约束对象。

4、最后将设置了约束的组件添加到容器中。

使用网格包布局的第二种方法为:

1、使GridBagLayout布局成为当前容器的布局管理器,这里也可以不用创建GridBagLayout对象。

2、创建一个GridBagConstraints类型的约束对象,然后使用该对象设置约束条件。注意这里设置的约束条件并没有针对某一组件,要使某一组件具有设置的约束,需要使用第3步骤的方法。

3、然后使用add(Component com, Object cons)方法将组件和约束同时添加进容器中,这样添加进容器的组件就具有了第2步的约束。注意其中的add(Component com, Object cons);第一个参数是将要添加的组件,第二个参数是要添加的GridBagConstraints类型的约束对象。


使用GridBagLayout布局的步骤

1.使用GridBagLayout网格包布局管理器之前应先设置好网格单元,即要把容器划分为几行几列的网格单元

   比如:要花分为3行5列的

2.每行每列在容器中的宽度和高度比例

   先确定行比例(weighty):比如 2:3:5

   列比例(weightx): 1:3:5:2

3.每个组件应在哪个网格单元

         组件所在单元格的位置:gridheight,gridwidth来确定


具体实例:

代码如下:

package textswing;import java.awt.Color;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JTextArea;public class textgridbag extends JFrame{public static void main(String[] args) {new textgridbag();}public textgridbag() {edit();setSize(870, 618);setTitle("网格包布局");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//pack();//自动调节显示setVisible(true);}public void edit() {JTextArea ta1 = new JTextArea();ta1.setBackground(Color.black);JButton jb1 = new JButton("1");JButton jb2 = new JButton("2");JButton jb3 = new JButton("3");JButton jb4 = new JButton("4");JButton jb5 = new JButton("5");JButton jb6 = new JButton("6");JButton jb7 = new JButton("7");JButton jb8 = new JButton("8");JButton jb9 = new JButton("9");JButton jb10 = new JButton("10");JButton jb11 = new JButton("11");JButton jb12 = new JButton("12");JButton jb13 = new JButton("13");JButton jb14 = new JButton("14");JButton jb15 = new JButton("15");JButton jb16 = new JButton("16");JButton jb17 = new JButton("17");JButton jb18 = new JButton("18");JButton jb19 = new JButton("19");this.add(ta1);this.add(jb1);this.add(jb2);this.add(jb3);this.add(jb4);this.add(jb5);this.add(jb6);this.add(jb7);this.add(jb8);this.add(jb9);this.add(jb10);this.add(jb11);this.add(jb12);this.add(jb13);this.add(jb14);this.add(jb15);this.add(jb16);this.add(jb17);this.add(jb18);this.add(jb19);GridBagLayout gb = new GridBagLayout();this.setLayout(gb);GridBagConstraints gc1 = new GridBagConstraints();gc1.fill = GridBagConstraints.BOTH;gc1.gridheight = 8;gc1.gridwidth = 5;gc1.weightx = 100;gc1.weighty = 10;gb.setConstraints(ta1, gc1);gc1.gridheight = 1;gc1.weightx = 1;gc1.weighty = 1;gc1.gridwidth = 0;gb.setConstraints(jb1, gc1);gc1.gridwidth =1;gb.setConstraints(jb2, gc1);gb.setConstraints(jb3, gc1);gc1.gridwidth = 0;gb.setConstraints(jb4, gc1);gb.setConstraints(jb5, gc1);gb.setConstraints(jb6, gc1);gc1.gridwidth =1;gb.setConstraints(jb7, gc1);gb.setConstraints(jb8, gc1);gc1.gridwidth = 0;gb.setConstraints(jb9, gc1);gb.setConstraints(jb10, gc1);gb.setConstraints(jb11, gc1);gb.setConstraints(jb12, gc1);gc1.gridwidth = 1;gc1.gridheight = 2;gb.setConstraints(jb13, gc1);gb.setConstraints(jb14, gc1);gb.setConstraints(jb15, gc1);gb.setConstraints(jb16, gc1);gb.setConstraints(jb17, gc1);gc1.gridwidth = 0;gc1.gridheight = 1;gb.setConstraints(jb18, gc1);gb.setConstraints(jb19, gc1);}}


1 0
原创粉丝点击