this.getContentPane().setLayout(new GridBagLayout());
    GridBagConstraints gbc = new GridBagConstraints();//新建类实例
    gbc.gridwidth = 1;//指定显示区域在一行中占用一个格子单元
    gbc.gridheight =1;//指定显示区域在一列中占用一个格子单元
    gbc.weightx = 1;//按比例1扩展列宽
    gbc.weighty = 1;//按比例1扩展列长
    gbc.fill = gbc.HORIZONTAL;//该组件宽度扩展到整个显示区域,高度不变
    gbc.anchor = gbc.CENTER;//组件显示于格子单元的中间    //CheckboxGroup for fore and back ground
    gp = new CheckboxGroup();
    fore = new Checkbox("Foreground", true, gp);
    back = new Checkbox("Background", false, gp);
    gbc.gridx = 1;//第1行
    gbc.gridy = 0;//第0列
    getContentPane().add(fore, gbc);
    gbc.gridx = 3;//第3行
    gbc.gridy = 0;//第0列
    getContentPane().add(back, gbc);
    fore.addItemListener(this);
    back.addItemListener(this);

解决方案 »

  1.   

    gbc.weightx = 1;//按比例1扩展列宽
    gbc.weighty = 1;//按比例1扩展列长
    1、这两句不明白
    2、anchor 是做什么用的?
    3、几行几列是怎么定义的,是一行能放几个组件就有几行吗?能放几列就有几列吗?如果我有2个组件,但是我想定义3列呢?
      

  2.   

    继续啊,JAVA AWT SWING挺好玩的
      

  3.   

    import java.awt.*;
    import java.util.*;
    import java.applet.Applet;
    public class GridBagEx1 extends Applet {
        protected void makebutton(String name,
                                  GridBagLayout gridbag,
                                  GridBagConstraints c) {
            Button button = new Button(name);
            gridbag.setConstraints(button, c);
            add(button);
        }    public void init() {
            GridBagLayout gridbag = new GridBagLayout();
            GridBagConstraints c = new GridBagConstraints();
            setFont(new Font("Helvetica", Font.PLAIN, 14));
            setLayout(gridbag);
            c.fill = GridBagConstraints.BOTH;
            c.weightx = 1.0;
            makebutton("Button1", gridbag, c);
            makebutton("Button2", gridbag, c);
            makebutton("Button3", gridbag, c);
            c.gridwidth = GridBagConstraints.REMAINDER; //end row
            makebutton("Button4", gridbag, c);
            c.weightx = 0.0; //reset to the default
            makebutton("Button5", gridbag, c); //another row
            c.gridwidth = GridBagConstraints.RELATIVE; //next-to-last in row
            makebutton("Button6", gridbag, c);
            c.gridwidth = GridBagConstraints.REMAINDER; //end row
            makebutton("Button7", gridbag, c);        c.gridwidth = 1; //reset to the default
            c.gridheight = 2;
            c.weighty = 1.0;
            makebutton("Button8", gridbag, c);
            c.weighty = 0.0; //reset to the default
            c.gridwidth = GridBagConstraints.REMAINDER; //end row
            c.gridheight = 1; //reset to the default
            makebutton("Button9", gridbag, c);
            makebutton("Button10", gridbag, c);
        }
        public static void main(String args[]) {
            Frame f = new Frame("GridBag Layout Example");
            GridBagEx1 ex1 = new GridBagEx1();
            ex1.init();
            f.add("Center", ex1);
            f.pack();
            f.resize(f.preferredSize());
            f.show();
        }
    }
      

  4.   

    gbc.weightx = 1;//按比例1扩展列宽
    gbc.weighty = 1;//按比例1扩展列长〉1、这两句不明白
       就是说水平、垂直占几格〉2、anchor 是做什么用的?
        锚点,用于格内的对齐方式 (就像你用WORD中,有水平居中,靠左靠右一样)〉3、几行几列是怎么定义的,是一行能放几个组件就有几行吗?能放几列就有几列吗?如果我有2个组件,但是我想定义3列呢?
       
       这个你不用管,Layout会自动计算行列数。
      

  5.   

    gbc.weightx = 1;//按比例1扩展列宽
    gbc.weighty = 1;//按比例1扩展列长〉1、这两句不明白
       就是说水平、垂直占几格〉2、anchor 是做什么用的?
        锚点,用于格内的对齐方式 (就像你用WORD中,有水平居中,靠左靠右一样)〉3、几行几列是怎么定义的,是一行能放几个组件就有几行吗?能放几列就有几列吗?如果我有2个组件,但是我想定义3列呢?
       
       这个你不用管,Layout会自动计算行列数。
      

  6.   

    gbc.weightx = 1;//按比例1扩展列宽
    gbc.weighty = 1;//按比例1扩展列长〉1、这两句不明白
       就是说水平、垂直占几格〉2、anchor 是做什么用的?
        锚点,用于格内的对齐方式 (就像你用WORD中,有水平居中,靠左靠右一样)〉3、几行几列是怎么定义的,是一行能放几个组件就有几行吗?能放几列就有几列吗?如果我有2个组件,但是我想定义3列呢?
       
       这个你不用管,Layout会自动计算行列数。