GridBagLayout网格包布局管理器

GridBagLayout    

       灵活也难以掌控的布局管理器,每个 GridBagLayout 对象维持一个动态的矩形单元网格,每个组件占用一个或多个这样的单元,该单元被称为显示区域

     组件可以由程序选择存放位置Constraints 对象指定组件的显示区域在网格中的具体放置位置,以及组件在其显示区域中的放置方式,考虑每个组件的最小大小和首选大小,以确定组件的大小。

     GridBagLayout对每个组件施加空间控制是通过类 GridBagConstraints 来实现的。


import java.awt.*;

public class GridBagLayout01{    
    public static void main(String args[]){
        Frame f=new Frame("GridBagLayout网格包布局的演示");
        Panel p=new Panel();
        GridBagLayout gbl=new GridBagLayout();
        GridBagConstraints gbc=new GridBagConstraints();
        Button b=new Button("确定");
        //Checkbox复选框
        Checkbox cb0=new Checkbox("one",true,null);
        Checkbox cb1=new Checkbox("two",false,null);
        //创建标签
        Label la=new Label("性别:");
        //CheckboxGroup用于集合 Checkbox复选框的按钮集成单选了
        CheckboxGroup cbg=new CheckboxGroup();
        //创建单选按钮
        Checkbox cb3=new Checkbox("男",true,cbg);
        Checkbox cb4=new Checkbox("女",false,cbg);
        //创建文本框
        TextField name=new TextField("name");
        TextField name1=new TextField("姓名",5);
        //创建列表
        List l=new List(2);
        //向列表添加内容
        l.add("Sun");
        l.add("Moon");
        l.add("Swing");
        //设置板面布局
        p.setLayout(gbl);
              
        gbc.gridwidth=GridBagConstraints.REMAINDER;//设置网格宽度  
        gbc.gridheight=1;
        gbl.setConstraints(name, gbc);
        gbl.setConstraints(name1, gbc);
        p.add(name);p.add(name1);
        
        gbc.gridwidth=3;
        gbc.gridheight=1;
        gbl.setConstraints(la, gbc);
        gbl.setConstraints(cb3, gbc);
        gbl.setConstraints(cb4, gbc);
        p.add(la);p.add(cb3);p.add(cb4);
        //设置网格包管理约束
        gbc.gridwidth=GridBagConstraints.REMAINDER;//设置网格宽度  
        gbl.setConstraints(cb0, gbc);
        gbl.setConstraints(cb1, gbc);
        //向板面添加组件
        p.add(cb0);p.add(cb1);
        
        
        //设置宽高
        gbc.gridwidth=1;
        gbc.gridheight=1;
        gbl.setConstraints(l, gbc);
        p.add(l);
        gbc.gridwidth=GridBagConstraints.CENTER;
        gbl.setConstraints(b, gbc);
        p.add(b);
        
        f.add(p,"Center");
        f.pack();
        f.setSize(400, 300);
        f.setVisible(true);
    }
}

GridBagLayout网格包布局管理器_第1张图片

你可能感兴趣的:(java,布局,GridBagLayout,LayoutManager接口,网格包)