GUI之GridLayout基本用法

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; // /设置组件横向纵向可以拉伸
        c.weightx = 1; // /设置横向权重为1   
        c.weighty = 1; // /设置纵向权重为1   这两条设置的是当前行
        this.addComponent("bt1", layout, c);
        this.addComponent("bt2", layout, c);
        this.addComponent("bt3", layout, c);
        c.gridwidth = GridBagConstraints.REMAINDER; // /添加的组件bt4是本行的最后一个组件
        this.addComponent("bt4", layout, c);
        c.weightx = 0; // /设置横向权重为0
        c.weighty = 0; // /设置纵向权重为0  权重即为组件占领容器中多余的水平方向和垂直方向的空白区域
        addComponent("bt5", layout, c);
        c.gridwidth = 1; // /设置组件bt6跨一个网格(默认值)
        this.addComponent("bt6", layout, c);
        c.gridwidth = GridBagConstraints.REMAINDER; // /添加的组件bt7是本行最后一个组件
        this.addComponent("bt7", layout, c);
        c.gridheight = 2;
        c.gridwidth = 1;
        c.weightx = 2;
        c.weighty = 2;     ///以上四条设置的是bt8在容器中的大小
        this.addComponent("bt8", layout, c);
        c.gridwidth = GridBagConstraints.REMAINDER;
        c.gridheight = 1; ///这里设置的是bt9和bt10两个组件的纵向跨越一个网格
        this.addComponent("bt9", layout, c);
        this.addComponent("bt10", layout, c);
        this.pack();///根据窗口里面的布局及组件的preferedSize来确定frame的最佳大小。
        this.setVisible(true);
    }

    // /添加组件的方法
    private void addComponent(String name, GridBagLayout layout,
            GridBagConstraints c) {
        Button bt = new Button(name); // /创建一个名为name的按钮
        layout.setConstraints(bt, c); // /设置GridBagConstraints的对象和按钮的关联
        this.add(bt); // /增加按钮
    }
}

public class Demo {
    public static void main(String[] args) {
        new Layout("GridBagLayout");
    }
}

生成的窗口如下:
这里写图片描述

GridLayout 类是一个布局处理器,它以矩形网格形式对容器的组件进行布置。容器被分成大小相等的矩形,一个矩形中放置一个组件。例如,下面是一个将六个按钮布置到三行两列中的 applet:

 import java.awt.*;
 import java.applet.Applet;
 public class ButtonGrid extends Applet {
     public void init() {
         setLayout(new GridLayout(3,2));
         add(new Button("1"));
         add(new Button("2"));
         add(new Button("3"));
         add(new Button("4"));
         add(new Button("5"));
         add(new Button("6"));
     }
 }

参考:
Java基础入门 清华出版 chapter 9
http://tool.oschina.net/apidocs/apidoc?api=jdk-zh
http://tool.oschina.net/apidocs/apidoc?api=jdk-zh
https://blog.csdn.net/dongdongsdo0310/article/details/6638903

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值