GridBagLayout官方例子
Button1、Button2、Button3: weightx = 1.0 //(权重)会得到额外空间
Button4:weightx = 1.0、gridwidth = GridBagConstraints.REMAINDER //行中的单元格数.最后一个
Button5:gridwidth = GridBagConstraints.REMAINDER //行中的单元格数.最后一个
Button6:gridwidth = GridBagConstraints.RELATIVE //行中的单元格数.倒数第二个
Button7:gridwidth = GridBagConstraints.REMAINDER //行中的单元格数.最后一个
Button8:gridheight = 2、weighty = 1.0
Button9、Button 10:gridwidth = GridBagConstraints.REMAINDER //行中的单元格数.最后一个
1 import java.awt.*; 2 import java.util.*; 3 import java.applet.Applet; 4 5 public class GridBagEx1 extends Applet { 6 7 public static void main(String args[]) 8 { 9 Frame f = new Frame("GridBag Layout Example"); 10 GridBagEx1 ex1 = new GridBagEx1(); 11 ex1.init(); 12 f.add("Center", ex1); 13 f.pack(); 14 f.setSize(f.getPreferredSize()); 15 f.show(); 16 } 17 //约束 18 protected void makebutton(String name,GridBagLayout gridbag,GridBagConstraints c) 19 { 20 Button button = new Button(name); 21 gridbag.setConstraints(button, c); 22 add(button); 23 } 24 25 public void init() { 26 //创建布局以及约束对象 27 GridBagLayout gridbag = new GridBagLayout(); 28 GridBagConstraints c = new GridBagConstraints(); 29 30 setFont(new Font("SansSerif", Font.PLAIN, 14)); 31 setLayout(gridbag); 32 33 c.fill = GridBagConstraints.BOTH;//组件填充 当组件空间大于组件本身时,要将组建置于何处。 34 c.weightx = 1.0;//X值随着窗口的变大而变大 35 makebutton("Button1", gridbag, c); 36 makebutton("Button2", gridbag, c); 37 makebutton("Button3", gridbag, c); 38 39 c.gridwidth = GridBagConstraints.REMAINDER; //"剩余的"最后一个单元格 40 makebutton("Button4", gridbag, c); 41 42 c.weightx = 0.0; //默认值,不会随着窗口变大而变大 43 makebutton("Button5", gridbag, c); //新一行 44 45 c.gridwidth = GridBagConstraints.RELATIVE; //倒数第二个单元格 46 makebutton("Button6", gridbag, c); 47 48 c.gridwidth = GridBagConstraints.REMAINDER; //最后一个单元格 49 makebutton("Button7", gridbag, c); 50 51 c.gridwidth = 1; //单元格的宽为1 52 c.gridheight = 2; //单元格的高为2 53 c.weighty = 1.0; 54 makebutton("Button8", gridbag, c); 55 56 c.weighty = 0.0; 57 c.gridwidth = GridBagConstraints.REMAINDER; //自后一个 58 c.gridheight = 1; 59 makebutton("Button9", gridbag, c); 60 makebutton("Button10", gridbag, c); 61 setSize(300, 100); 62 } 63 }



浙公网安备 33010602011771号