swing快速入门(七)

发布时间:2023年12月18日

注释很详细,直接上代码

上一篇

新增内容

GridBagLayout布局管理器

跨行拓展的注意点

add函数与参数设置结合的封装

import java.awt.*;
public class swing_test_5 {
    public static void main(String[] args) {
        //创建窗口对象
        Frame frame =new Frame("示例GridBagLayout");

        //创建GridBagLayout对象
        GridBagLayout gbl=new GridBagLayout();

        //把frame的布局管理器设为GridBagLayout
        frame.setLayout(gbl);

        //创建GridBagConstraints对象
        GridBagConstraints gbc=new GridBagConstraints();

        //创建容量为10的Button数组
        Button[] bs =new Button[10];

        // 遍历数组,初始化每一个Button
        for(int i=0;i<bs.length;i++) {
        bs[i]=new Button("按钮"+(i+1));
        }
        // 设置每个GridBagConstraints对象的fill属性为GridBagConstraints.BOTH
        //当有空白区域时自动扩大组件占满空白区域
        gbc.fill=GridBagConstraints.BOTH;


        //往frame中添加数组中的所有Button
        //这里是封装了一个方法,可以先看最下面的方法内容
        add_Button(frame,gbc,bs[0],0,0,1,1);
        add_Button(frame,gbc,bs[1],1,0,1,1);
        add_Button(frame,gbc,bs[2],2,0,1,1);
        add_Button(frame,gbc,bs[3],3,0,1,1);

        add_Button(frame,gbc,bs[4],0,1,4,1);

        //像这样高度未拓展的行则需要该行已被坐标为该行的组件拓展,常常使用空白组件拓展
        //宽度同理,但一般这个问题都是出现在高度上
        add_Button(frame,gbc,bs[5],0,2,2,2);

        add_Button(frame,gbc,bs[6],2,2,1,1);
        add_Button(frame,gbc,bs[7],3,2,1,1);
        add_Button(frame,gbc,bs[8],2,3,1,1);
        add_Button(frame,gbc,bs[9],3,3,1,1);


        frame.pack();
        frame.setVisible(true);
    }
    //设置起始坐标和横竖扩展比例
    //入口只能调用静态的方法
    public static void add_Button(Frame frame,GridBagConstraints gbc,Button bs,int x,int y,int dx,int dy){
        //设置起始坐标x,y
        gbc.gridx=x;
        gbc.gridy=y;

        //设置拓展长度dx,dy
        gbc.gridwidth=dx;
        gbc.gridheight=dy;

        //设置x,y的权值
        gbc.weightx = 1.0;
        gbc.weighty = 1.0;

        //添加组件
        frame.add(bs,gbc);
    }
}

运行效果:

在这里插入图片描述
下一篇

文章来源:https://blog.csdn.net/m0_73756108/article/details/134935242
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。