使用网格包布局的一般步骤为:
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); }}
新闻热点
疑难解答