首页 > 编程 > Java > 正文

GridBagLayout布局 java swing

2019-11-08 03:26:44
字体:
来源:转载
供稿:网友

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

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);				}}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表