GridBagLayout布局 java swing

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

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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值