JAVA——48.gridbaglayout布局

【gridbaglayout】网格袋布局,一种可以由x,y轴来定位的布局方式。不需要组件的大小相同,便可以将组件垂直、水平或沿他们的基线对齐。每个gridbaglayout对象维持一个动态的矩形单元网格。
【GridBagConstraints】Constraints约束,得到一个约束类的对象
【gridx 】指定包含组件显示区域的前沿的单元格,其中一行中的第一个单元格具有 gridx=0 。
【gridy 】指定组件显示区域顶部的单元格,其中最上面的单元格具有 gridy=0 。
练习一、网格袋布局的应用

package org.zhaiyujia.test1;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class GuiTest5 extends JFrame {
    JButton b1,b2,b3,b4,b5;
    JPanel p;
    public GuiTest5() {
        b1=new JButton("button1");
        b2=new JButton("button2");
        b3=new JButton("button3");
        b4=new JButton("button4");
        b5=new JButton("button5");
        p=new JPanel();
        this.getContentPane().add(p);
        GridBagLayout gblayout=new GridBagLayout();
        p.setLayout(gblayout);
        GridBagConstraints gbc=new GridBagConstraints();//产生一个约束类的对象
        gbc.gridx=0;
        gbc.gridy=0;
        p.add(b1,gbc);//相当于button1这个组件应用了这个约束对象gbc,x、y坐标都是0
        //gridbaglayout是一个动态的布局类,当它没有其他组件时,他还是居中显示
        gbc.gridx=0;
        gbc.gridy=1;
        p.add(b2,gbc);
        //p.add(b3);
        //p.add(b4);
        //p.add(b5);
        this.setSize(300, 300);
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        new GuiTest5();
    }

}

这里写图片描述

package org.zhaiyujia.test1;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class GuiTest5 extends JFrame {
    JButton b1,b2,b3,b4,b5;
    JPanel p;
    public GuiTest5() {
        b1=new JButton("button1");
        b2=new JButton("button2");
        b3=new JButton("button3");
        b4=new JButton("button4");
        b5=new JButton("button5");
        p=new JPanel();
        this.getContentPane().add(p);
        GridBagLayout gblayout=new GridBagLayout();
        p.setLayout(gblayout);
        GridBagConstraints gbc=new GridBagConstraints();//产生一个约束类的对象
        gbc.gridx=0;
        gbc.gridy=0;
        p.add(b1,gbc);//相当于button1这个组件应用了这个约束对象gbc,x、y坐标都是0
        //gridbaglayout是一个动态的布局类,当它没有其他组件时,他还是居中显示
        gbc.gridx=0;
        gbc.gridy=1;
        p.add(b2,gbc);
        gbc.gridx=1;
        gbc.gridy=1;
        p.add(b3,gbc);
        gbc.gridx=0;
        gbc.gridy=2;        
        p.add(b4,gbc);
        gbc.gridx=1;
        gbc.gridy=2;
        p.add(b5,gbc);
        this.setSize(300, 300);
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        new GuiTest5();
    }

}

这里写图片描述
练习二、【weightx 】指定如何分配额外的水平空间。 如果得到的布局在水平方向上比需要填充的区域小,那么系统会将额外的空间按其权重比例分布到每一列
这里写图片描述
weighty同理
这里写图片描述
练习三、水平垂直填充
这里写图片描述
这里写图片描述
这里写图片描述
练习四、按钮会自动放在显示区域的东边
这里写图片描述

猜你喜欢

转载自blog.csdn.net/zhaiyujia15195383763/article/details/81159513
48
今日推荐