Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【Java AWT 图形界面编程】LayoutManager 布局管理器 ④ ( GridLayout 网格布局 | GridBagLayout 网格包布局 )

【Java AWT 图形界面编程】LayoutManager 布局管理器 ④ ( GridLayout 网格布局 | GridBagLayout 网格包布局 )

作者头像
韩曙亮
发布于 2023-03-30 10:45:15
发布于 2023-03-30 10:45:15
2.7K00
代码可运行
举报
运行总次数:0
代码可运行

文章目录

一、GridLayout 网格布局


GridLayout 网格布局管理器 可以将 当前的 Container 容器 划分成 网格 , 每个网格 区域 相同 ;

向 使用了 GridLayout 网格布局管理器 的 Container 容器 中添加 Component 组件时 , 默认的添加顺序是 从左到右 , 从上到下 ;

放置在 GridLayout 网格中的组件 , 组件的大小由网格的区域大小决定 , 默认情况下 组件会填充满所在的单个网格区域 ;

二、GridLayout 构造函数


GridLayout 构造函数 :

  • GridLayout() : 单行网格布局 ;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    /**
     * 创建一个默认为每个组件一列的网格布局,
     * 在单行中。
     * @since JDK1.1
     */
    public GridLayout() {
        this(1, 0, 0, 0);
    }
  • GridLayout(int rows, int cols) : 网格布局 中的 行数 和 列数 使用指定的值 , 网格的 水平 和 垂直 间隔使用默认值 ;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    /**
     * 创建具有指定行数和的网格布局
     * 列。布局中的所有组件都被赋予相同的大小。
     * <p>
     * <code>rows</code>和<code>cols</code>中的一个(而不是两个)可以
     * 为零,这意味着任何数量的物体都可以放置在行或列。
     * @param     rows   值为0的行表示
     *                   任意数量的行。
     * @param     cols   列,值为0表示
     *                   任意数量的列。
     */
    public GridLayout(int rows, int cols) {
        this(rows, cols, 0, 0);
    }
  • GridLayout(int rows, int cols, int hgap, int vgap) : 网格布局 中的 行数 和 列数 使用指定的值 , 网格的 水平 和 垂直 间隔使用指定的值 ;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    /**
     * 创建具有指定行数和的网格布局
     * 列。布局中的所有组件都被赋予相同的大小。
     * < p >
     * 此外,水平和垂直间隙设置为
     * 指定的值。水平间隔放置在每个之间
     * 列的。垂直的间隙被放置在每一个之间
     * 行。
     * < p >
     * <code>行</code>和<code>cols</code>中的一个(而不是两个)可以
     * 为零,这意味着任何数量的物体都可以放置在
     * 行或列。
     * < p >
     * 所有<code>GridLayout</code>构造函数都遵循此构造函数。
     * @param     rows   值为0的行表示
     *                   任意数量的行
     * @param     cols   列,值为0表示
     *                   任意数量的列
     * @param     hgap   水平间隙
     * @param     vgap   垂直差距
     * @exception   IllegalArgumentException  if the value of both
     *                  <code>rows</code> and <code>cols</code> is
     *                  set to zero
     */
    public GridLayout(int rows, int cols, int hgap, int vgap) {
        if ((rows == 0) && (cols == 0)) {
            throw new IllegalArgumentException("rows and cols cannot both be zero");
        }
        this.rows = rows;
        this.cols = cols;
        this.hgap = hgap;
        this.vgap = vgap;
    }

三、GridLayout 网格布局代码示例


代码示例 :

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.awt.*;

public class HelloAWT {
    public static void main(String[] args) {
        // Frame 默认的布局管理器就是 BorderLayout
        Frame frame = new Frame("AWT 界面编程");

        // 用于存放 文本框
        Panel panel = new Panel();
        // 该文本框可以存放 30 个字符
        TextField textField = new TextField(30);
        panel.add(textField);
        frame.add(panel, BorderLayout.NORTH);

        // 用于存放 网格布局中的组件
        // 需要设置该容器的 布局管理器为 网格布局管理器
        Panel panel2 = new Panel();
        panel2.setLayout(new GridLayout(3, 5, 4, 4));

        for (int i = 0; i < 10; i++) {
            panel2.add(new Button(i + ""));
        }
        panel2.add(new Button("+"));
        panel2.add(new Button("-"));
        panel2.add(new Button("*"));
        panel2.add(new Button("/"));
        panel2.add(new Button("="));
        frame.add(panel2, BorderLayout.CENTER);

        // 自定设置合适的大小
        frame.pack();
        frame.setVisible(true);
    }
}

执行结果 :

四、GridBagLayout 网格包布局


GridBagLayout 网格包布局 , 是在 GridLayout 网格布局的基础上 , 单个组件可以占用多个网格 , 占用的多个网格的大小形状也可以任意设置 , 每个组件都可以占用多行和多列的网格 , 即 m x n 大小的网格 , 如 : 占用 1 x 2 的网格 , 占用 3 x 4 的网格 ;

如果 GridBagLayout 网格包布局所在的 窗口 大小改变 , 对应的 网格 也会被 拉伸或压缩 ;

向 使用 GridBagLayout 网格包布局 的 Container 容器中 添加 Component 组件时 , 需要指定添加的 组件具体占的 网格 行列数 ; 可借助 GridBagConstaints 配置 组件 的 行列大小 ;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-01-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Java AWT 图形界面编程】LayoutManager 布局管理器 ⑤ ( CardLayout 卡片布局 | ActionListener 按钮点击事件添加 )
CardLayout 卡片布局 中 , Container 容器中 每个组件都相当于一张卡片 , 这些卡片平时都折叠起来 , 只有 最上面的卡片中的组件才是可见的 , 其它组件都不可见 ;
韩曙亮
2023/03/30
8220
【Java AWT 图形界面编程】LayoutManager 布局管理器 ⑤ ( CardLayout 卡片布局 | ActionListener 按钮点击事件添加 )
【Java AWT 图形界面编程】LayoutManager 布局管理器 ③ ( BorderLayout 布局 )
BorderLayout 布局 将 Container 容器 分割成 5 个部分 , 分别是 :
韩曙亮
2023/03/30
8170
【Java AWT 图形界面编程】LayoutManager 布局管理器 ③ ( BorderLayout 布局 )
Java开发GUI之GridLayout网格布局
    GridLayout是简单的网格布局,使用其可以方便的实现多行多列的布局样式。
珲少
2018/08/15
5340
Java开发GUI之GridLayout网格布局
java-GUI编程之布局类型介绍
java使用AWT和Swing相关的类可以完成图形化界面编程,其中AWT的全称是抽象窗口工具集(Abstract Window Toolkit),它是sun公司最早提供的GUI库,这个GUI库提供了一些基本功能,但这个GUI库的功能比较有限,所以后来sun公司又提供了Swing库。通过使用AWT和Swing提供的图形化界面组件库,java的图形化界面编程非常简单,程序只需要依次创建所需的图形组件,并以合适的方式将这些组件组织在一起,就可以开发出非常美观的用户界面。
愷龍
2022/09/26
1.7K0
java-GUI编程之布局类型介绍
【Java AWT 图形界面编程】LayoutManager 布局管理器 ① ( 布局管理器引入 | 布局管理器提高程序的适配性 | LayoutManager 布局管理器类 )
在上一篇博客 【Java AWT 图形界面编程】Container 容器 ③ ( ScrollPane 可滚动容器示例 ) 中 , 向 ScrollPan 中添加了 TextField 文本框 和 Button 按钮 , 但是显示的时候效果如下 :
韩曙亮
2023/03/30
5570
【Java AWT 图形界面编程】LayoutManager 布局管理器 ① ( 布局管理器引入 | 布局管理器提高程序的适配性 | LayoutManager 布局管理器类 )
【Java AWT 图形界面编程】LayoutManager 布局管理器 ⑥ ( BoxLayout 布局 )
BoxLayout 布局 不是 AWT 中的布局 , 而是 Swing 中引入的 ;
韩曙亮
2023/03/30
7200
【Java AWT 图形界面编程】LayoutManager 布局管理器 ⑥ ( BoxLayout 布局 )
GridLayout和
GridLayout布局管理器是以表格形式进行管理的,在使用此布局管理器时必须设置显示的行数和列数,GridLayout类的构造方法如表11.9所示。
用户9184480
2024/12/19
620
GridLayout和
java学习之路:31.java常用布局管理器(绝对,流,边界,网格)
绝对布局,就是可以硬性指定组件在容器中的位置和大小,使用绝对坐标来指定组件的位置与大小。 步骤如下: (1)使用Container.setLayout(null)方法取消布局管理器。 (2)使用Component.setBounds()方法设置每个组件的大小与位置。
花狗Fdog
2020/10/28
1.2K0
java学习之路:31.java常用布局管理器(绝对,流,边界,网格)
第58节:Java中的图形界面编程-GUI
GUI是图形用户界面,在Java中,图形用户界面我们用GUI表示,而GUI的完整英文为: Graphical User Interface(图形用户接口), 所谓图形用户界面就是以图形的方式来显示你计算机的操作界面, 我们计算机中操作的界面就是 我们Java中常说的图形用户界面, 这样的操作简单明了.
达达前端
2019/07/04
1.9K0
第58节:Java中的图形界面编程-GUI
【Java AWT 图形界面编程】LayoutManager 布局管理器 ⑦ ( Box 容器 | Box 容器中添加分割 )
为了 方便使用 BoxLayout 布局 , Swing 中提供了 Box 容器 ;
韩曙亮
2023/03/30
4600
【Java AWT 图形界面编程】LayoutManager 布局管理器 ⑦ ( Box 容器 | Box 容器中添加分割 )
从零开始学android编程之网格布局管理器(2-1)
网格布局管理器用GridLayout类来表示。在《从零开始学android编程之表格布局管理器》中提到的TableLayout一般产生的表格外形是标准的方框,而GridLayout类产生的网格可以是不标准的。
全栈程序员站长
2022/08/23
3670
从零开始学android编程之网格布局管理器(2-1)
Java---布局管理代码简单使用(解答)
1.流布局管理器: FlowLayout布局管理器中组件的相对位置随窗口大小而变化。
谙忆
2021/01/20
6730
Java---布局管理代码简单使用(解答)
【Java AWT 图形界面编程】LayoutManager 布局管理器总结 ( FlowLayout 布局 | BorderLayout 布局 | BoxLayout 布局 )
在上一篇博客 【Java AWT 图形界面编程】Container 容器 ③ ( ScrollPane 可滚动容器示例 ) 中 , 向 ScrollPan 中添加了 TextField 文本框 和 Button 按钮 , 但是显示的时候效果如下 :
韩曙亮
2023/03/30
4.2K0
【Java AWT 图形界面编程】LayoutManager 布局管理器总结 ( FlowLayout 布局 | BorderLayout 布局 | BoxLayout 布局 )
深入Java Swing用户界面组件布局管理器:网格布局+面板+边界布局
在讨论每个Swing组件(例如文本域和单选按钮)之前,首先介绍一下如何把这些组件安排在一个框架内。与Visual Basic不同,JDK没有表单设计器,需要通过编写代码来定制(布局)用户界面组件所在的位置。
愿天堂没有BUG
2022/10/28
3.7K0
深入Java Swing用户界面组件布局管理器:网格布局+面板+边界布局
常用布局管理器
布局管理器也就是GUI中的布局设置,是指窗口上的组件遵循一定的规则来排列,并会随着窗口大小的变化来变化组件大小和位置的布局方式。
用户9184480
2024/12/19
1420
常用布局管理器
【Java AWT 图形界面编程】LayoutManager 布局管理器 ② ( FlowLayout 流式布局 )
如 : 下面的布局就是从左向右的流式布局 , 将 6 个组件放在 FlowLayout 流式布局中 , 1 , 2 , 3 组件放入后 , 再 放入 4 组件 , 发现第 1 排位置不够了 , 遇到障碍 , 此时折 返回左侧 , 另起一行 , 在第 2 排继续从左到右排列 ;
韩曙亮
2023/03/30
8960
【Java AWT 图形界面编程】LayoutManager 布局管理器 ② ( FlowLayout 流式布局 )
5、Java Swing布局管理器(FlowLayout、BorderLayout、CardLayout、BoxLayout、GirdBagLayout 和 GirdLayout)
YGingko
2017/12/27
6.3K0
5、Java Swing布局管理器(FlowLayout、BorderLayout、CardLayout、BoxLayout、GirdBagLayout 和 GirdLayout)
23 Java 图形化编程
图形用户界面(Graphical User Interface,简称 GUI)编程对于某种语言来说非常重要。Java的应用主要方向是基于Web浏览器的应用,用户界面主要是HTML、CSS和JavaScript等基于Web的技术,这些介绍要到Java EE阶段才能学习到。
acc8226
2022/09/22
2.6K0
23 Java 图形化编程
布局管理器
 针对我们之前留下的作业来说,当缩放外层Frame窗口的大小时,内层Panel并不会随之改变大小,所以我们需要一个事件监听,让他能够随之改变,但是这样太麻烦了,于是Java给我们提供了一个布局管理器类,这个布局管理器举个例子相当于一个大管家,房子相当于Frame,其中的家具就相当于Frame里的元素,我们只管把元素往Frame里丢,不用管怎么排列,大管家自动帮我们排列。不同的布局管理器有不同的风格
mathor
2018/08/03
1.1K0
布局管理器
超详细的Java容器、面板及四大布局管理器应用讲解!
之前在进行Java的窗体开发时经常会把容器、面板与布局管理混淆,从而不能正确的使用这三种属性对窗体应用进行布局。所以今天在这里记录一下Java窗体中容器、面板及常见的四大布局管理器的用法。
灰小猿
2020/09/23
3K0
超详细的Java容器、面板及四大布局管理器应用讲解!
推荐阅读
【Java AWT 图形界面编程】LayoutManager 布局管理器 ⑤ ( CardLayout 卡片布局 | ActionListener 按钮点击事件添加 )
8220
【Java AWT 图形界面编程】LayoutManager 布局管理器 ③ ( BorderLayout 布局 )
8170
Java开发GUI之GridLayout网格布局
5340
java-GUI编程之布局类型介绍
1.7K0
【Java AWT 图形界面编程】LayoutManager 布局管理器 ① ( 布局管理器引入 | 布局管理器提高程序的适配性 | LayoutManager 布局管理器类 )
5570
【Java AWT 图形界面编程】LayoutManager 布局管理器 ⑥ ( BoxLayout 布局 )
7200
GridLayout和
620
java学习之路:31.java常用布局管理器(绝对,流,边界,网格)
1.2K0
第58节:Java中的图形界面编程-GUI
1.9K0
【Java AWT 图形界面编程】LayoutManager 布局管理器 ⑦ ( Box 容器 | Box 容器中添加分割 )
4600
从零开始学android编程之网格布局管理器(2-1)
3670
Java---布局管理代码简单使用(解答)
6730
【Java AWT 图形界面编程】LayoutManager 布局管理器总结 ( FlowLayout 布局 | BorderLayout 布局 | BoxLayout 布局 )
4.2K0
深入Java Swing用户界面组件布局管理器:网格布局+面板+边界布局
3.7K0
常用布局管理器
1420
【Java AWT 图形界面编程】LayoutManager 布局管理器 ② ( FlowLayout 流式布局 )
8960
5、Java Swing布局管理器(FlowLayout、BorderLayout、CardLayout、BoxLayout、GirdBagLayout 和 GirdLayout)
6.3K0
23 Java 图形化编程
2.6K0
布局管理器
1.1K0
超详细的Java容器、面板及四大布局管理器应用讲解!
3K0
相关推荐
【Java AWT 图形界面编程】LayoutManager 布局管理器 ⑤ ( CardLayout 卡片布局 | ActionListener 按钮点击事件添加 )
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文