Java GUI(图形化界面)——GridBagLayout(网格包布局管理器)

Java GUI(图形化界面)——GridBagLayout(网格包布局管理器)GridBagLayout(网格包布局管理器)网格包布局管理器与GridLayout布局管理器类似,但是它允许网格中的组件大小各不相同,而且允许一个组件跨越一个或者多个网格。使用GridBagLayout布局管理器的步骤 创建GridBagLayout布局管理器,并使容器采用该布局管理器。 GridBagLayoutlayout=newGridBagLayout();container.setLayout(layout); 创建GridBagLayout对象,并..

GridBagLayout(网格包布局管理器)

网格包布局管理器与GridLayout布局管理器类似,但是它允许网格中的组件大小各不相同,而且允许一个组件跨越一个或者多个网格。

使用GridBagLayout布局管理器的步骤

  • 创建GridBagLayout布局管理器,并使容器采用该布局管理器。

     GridBagLayout layout=new GridBagLayout();
     container.setLayout(layout);

  • 创建GridBagLayout对象,并设置对象的相关属性

     GridBagConstraints constraints=new GridBagConstraints();
     constraints.gridx=1;//设置网格的左上角横向索引
     constraints.gridy=1;//设置网格的左上角纵向索引
     constraints.gridwidth=1;//设置组件横向跨越的网格
     constraints.gridheight=1;//设置组件的纵向跨越的网格

  • 调用GridBagLayout对象的setConstraints()方法建立GridBagConstraints对象和受控组件之间的关联。

     layout.setConstraints(component,constraints);

  • 向容器中添加组件

     container.add(conponent);

weightx和weighty

设置组件占领容器中多余的水平方向和垂直方向的空白比例(也称为权重)所设置的控件根据增加到像素去给对应的控件按权重增加像素。

 
package AWT;
 import java.awt.*;
 class Layout extends Frame{
     public Layout(String title){
         GridBagLayout layout=new GridBagLayout();
         GridBagConstraints c=new GridBagConstraints();
         this.setLayout(layout);
         //设置横向坐标可以拉伸
         c.fill=GridBagConstraints.BOTH;
         //设置横向,纵向权值为1
         c.weightx=1;
         c.weighty=1;
         this.addComponent("btn1",layout,c);
         this.addComponent("btn2",layout,c);
         this.addComponent("btn3",layout,c);
         //添加本行最后一个组件
         c.gridwidth=GridBagConstraints.REMAINDER;
         this.addComponent("btn4",layout,c);
         //设置横向,纵向权值为0
         c.weightx=0;
         c.weighty=0;
         this.addComponent("btn5",layout,c);
         //设置组件跨一个网格
         c.gridwidth=1;
         this.addComponent("btn6",layout,c);
         //添加的组件是本行最后一个组件
         c.gridwidth=GridBagConstraints.REMAINDER;
         this.addComponent("btn7",layout,c);
         //设置组件纵向跨两个网格,横向跨一个网格
         c.gridheight=2;
         c.gridwidth=1;
         //设置横向,纵向权重为2
         c.weightx=2;
         c.weighty=2;
         this.addComponent("btn8",layout,c);
         c.gridwidth=GridBagConstraints.REMAINDER;
         c.gridheight=1;
         this.addComponent("btn9",layout,c);
         this.addComponent("btn10",layout,c);
         this.setTitle(title);
         this.pack();
         this.setVisible(true);
     }
     private  void addComponent(String name ,GridBagLayout layout,GridBagConstraints c){
         Button bt=new Button(name);
         //设置GridBagConStraints和按钮的关联
         layout.setConstraints(bt,c);
         this.add(bt);
     }
 }
 public class WangGeBao {
     public static void main(String[] args) {
         new Layout("GridBagLayout");
     }
 }

Java GUI(图形化界面)------GridBagLayout(网格包布局管理器) 

 

今天的文章Java GUI(图形化界面)——GridBagLayout(网格包布局管理器)分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/31746.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注