Java AWT Swing11 awt_LayoutManager布局管理器_GridLayout

本文详细介绍了JavaAWT和Swing库中的GridLayout布局管理器,包括其基本概念、创建方法、如何应用于容器以及如何设置组件间距。通过实例展示了如何使用GridLayout创建一个简单的计算器界面。
摘要由CSDN通过智能技术生成

探索Java AWT和Swing中的GridLayout布局管理器

引言

在Java的图形用户界面编程中,GridLayout是AWT和Swing库中一个非常有用的布局管理器。它能够创建一个网格,其中的组件大小均一,按行列排列。这使得GridLayout非常适合于创建类似计算器这样的布局。

基本概念

GridLayout按照矩阵形式组织组件,你可以指定行数和列数。如果添加的组件数量超过了网格的容量,GridLayout会自动扩展行数或列数(取决于构造函数的参数设置)。

创建GridLayout

要使用GridLayout,首先需要创建其实例。这可以通过调用其构造函数来实现,例如:new GridLayout(int rows, int cols),其中rowscols分别是行数和列数。

GridLayout gridLayout = new GridLayout(3, 2); // 创建一个3行2列的网格

将GridLayout应用于容器

创建GridLayout后,接下来需要将它设置为容器(如JPanel或JFrame)的布局。这是通过调用容器的setLayout方法实现的。

JPanel panel = new JPanel();
panel.setLayout(gridLayout); // 设置布局管理器

向GridLayout添加组件

添加组件到使用GridLayout的容器中,和添加到其他任何容器中一样简单。使用add方法即可。

panel.add(new JButton("Button 1"));
panel.add(new JButton("Button 2"));
// 继续添加其他组件...

调整间距

可以通过调用GridLayout的构造函数GridLayout(int rows, int cols, int hgap, int vgap)来设置组件之间的水平间距(hgap)和垂直间距(vgap)。

GridLayout gridLayout = new GridLayout(3, 2, 5, 5); // 5像素的水平和垂直间距

示例:创建一个简单的计算器界面

让我们创建一个简单的计算器界面,来展示GridLayout的实际应用。

import javax.swing.*;
import java.awt.*;

public class SimpleCalculator {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Calculator");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 300);

        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(4, 4, 5, 5)); // 4x4网格,间距为5

        // 添加按钮
        String[] buttons = {
            "7", "8", "9", "/",
            "4", "5", "6", "*",
            "1", "2", "3", "-",
            "0", ".", "=", "+"
        };
        for (String buttonText : buttons) {
            panel.add(new JButton(buttonText));
        }

        frame.add(panel);
        frame.setVisible(true);
    }
}

结论

GridLayout是Java GUI编程中一个简单而强大的布局管理器。它通过提供一个均匀的网格,使得组件的布局变得直观且容易管理。无论是在创建表单、计算器还是简单的游戏界面,GridLayout都是一个很好的选择。

源码:

package com.one.layout;
import java.awt.*;
public class GridLayoutDemo {
    public static void main(String[] args){
        Frame frame=new Frame("计算器");
        //1.创建一个Panel对象,里面存放一个TextFiled组件
        Panel p=new Panel();
        p.add(new TextField(30));
        //2.把当前这个Panel对象,并且设置他的布局管理器为GridLayout
        frame.add(p,BorderLayout.NORTH);
        //3.创建一个Panel对象,并且设置它的布局管理器为GridLayout
        Panel p2=new Panel();
        p2.setLayout(new GridLayout(3,5,4,4));
        //4往Panel中添加内容
        for(int i=0;i<10;i++){
            p2.add(new Button(i+""));
        }
        p2.add(new Button("+"));
        p2.add(new Button("-"));
        p2.add(new Button("*"));
        p2.add(new Button("."));
        //5.把当前Panel添加到frame中
        frame.add(p2);
        frame.pack();
        frame.setVisible(true);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏驰和徐策

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值