关于#Java#的问题,如何解决?

设计一个GridBagLayout布局管理器,定义布局如下:

img

说明:
1、btn1~3可同时横向、纵向拉伸;btn4、btn5仅可以纵向拉伸;btn6~8仅可以横向拉伸;
2、btn6纵向跨2个网格;btn7和btn8横向跨2个网格。

import java.applet.Applet;
import java.awt.*;

public class GridBagEx4 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("SansSerif", Font.PLAIN, 14));
        setLayout(gridbag);

        c.fill = GridBagConstraints.BOTH;
        c.weightx = 1;
        c.weighty = 1;
        makebutton("btn1", gridbag, c);
        makebutton("btn2", gridbag, c);
        c.gridwidth = GridBagConstraints.REMAINDER; // 结束行
        makebutton("btn3", gridbag, c);

        c.fill = GridBagConstraints.VERTICAL;
        c.gridwidth = 1;
        makebutton("btn4", gridbag, c);
        c.gridwidth = GridBagConstraints.REMAINDER; // 结束行
        makebutton("btn5", gridbag, c); // 另一排

        c.fill = GridBagConstraints.HORIZONTAL;
        c.gridx = 1;
        makebutton("btn7", gridbag, c);

        makebutton("btn6", gridbag, c);

        c.gridwidth = GridBagConstraints.REMAINDER; // 结束行
        makebutton("btn8", gridbag, c);

    }

    public static void main(String args[]) {
        Frame f = new Frame("GridBag Layout Example");
        GridBagEx3 ex1 = new GridBagEx3();

        ex1.init();

        f.add("Center", ex1);
        f.pack();
        f.setSize(f.getPreferredSize());
        f.setSize(1024,768);
        f.show();
    }
}

swing布局? 如果是可以看我的博客关于swing布局的开源库