Java Swing BoxLayout箱式布局的实现代码

 更新时间:2019年12月05日 09:34:12   作者:xietansheng  
这篇文章主要介绍了Java Swing BoxLayout箱式布局的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1. 概述

官方JavaDocsApi: javax.swing.BoxLayoutjavax.swing.Box

BoxLayout,箱式布局管理器。它把若干组件按水平或垂直方向依次排列放置。Swing 提供了一个实现了 BoxLayout 的容器组件Box。使用 Box 提供的静态方法,可快速创建水平/垂直箱容器(Box),以及填充组件之间空隙的不可见组件。用水平箱和垂直箱的组合嵌套可实现类似于 GridBagLayout 的效果,但没那么复杂。

创建水平/垂直箱容器(Box):

// 创建一个水平箱容器
Box hBox = Box.createHorizontalBox();
  
// 创建一个垂直箱容器
Box vBox = Box.createVerticalBox();

Box 内的组件之间默认没有空隙并居中,如果想在组件之间(或头部/尾部)添加空隙,可以在其中添加一个影响布局的不可见组件。Box 提供了三种用于填充空隙的不可见组件:glue、struts 和 rigidAreas。

创建 胶状(宽/高可伸缩)的不可见组件(glue):

// 创建一个 水平方向胶状 的不可见组件,用于撑满水平方向剩余的空间(如果有多个该组件,则平分剩余空间)
Component hGlue = Box.createHorizontalGlue();

// 创建一个 垂直方向胶状 的不可见组件,用于撑满垂直方向剩余的空间(如果有多个该组件,则平分剩余空间)
Component vGlue = Box.createVerticalGlue();

// 创建一个 水平和垂直方向胶状 的不可见组件,用于撑满水平和垂直方向剩余的空间(如果有多个该组件,则平分剩余空间)
Component glue = Box.createGlue();

创建 固定宽度或高度 的不可见组件(struts):

// 创建一个 固定宽度 的不可见组件(用于水平箱)
Component hStrut = Box.createHorizontalStrut(int width);

// 创建一个 固定高度 的不可见组件(用于垂直箱)
Component vStrut = Box.createVerticalStrut(int height);

创建 固定宽高 的不可见组件(rigidAreas):

// 创建 固定宽高 的不可见组件
Component rigidArea = Box.createRigidArea(new Dimension(int width, int height));

2. 代码实例

package com.xiets.swing;

import javax.swing.*;

public class Main {

  public static void main(String[] args) {
    JFrame jf = new JFrame("测试窗口");
    jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    JButton btn01 = new JButton("Button01");
    JButton btn02 = new JButton("Button02");
    JButton btn03 = new JButton("Button03");
    JButton btn04 = new JButton("Button04");
    JButton btn05 = new JButton("Button05");

    // 创建第一个水平箱容器
    Box hBox01 = Box.createHorizontalBox();
    hBox01.add(btn01);
    hBox01.add(btn02);
    hBox01.add(btn03);

    // 创建第二水平箱容器
    Box hBox02 = Box.createHorizontalBox();
    hBox02.add(btn04);
    hBox02.add(Box.createHorizontalGlue()); // 添加一个水平方向胶状的不可见组件,撑满剩余水平空间
    hBox02.add(btn05);

    // 创建一个垂直箱容器,放置上面两个水平箱(Box组合嵌套)
    Box vBox = Box.createVerticalBox();
    vBox.add(hBox01);
    vBox.add(hBox02);

    // 把垂直箱容器作为内容面板设置到窗口
    jf.setContentPane(vBox);

    jf.pack();
    jf.setLocationRelativeTo(null);
    jf.setVisible(true);
  }

}

结果展示:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 详解poi+springmvc+springjdbc导入导出excel实例

    详解poi+springmvc+springjdbc导入导出excel实例

    本篇文章主要介绍了poi+springmvc+springjdbc导入导出excel实例,非常具有实用价值,需要的朋友可以参考下。
    2017-01-01
  • Java中4种校验注解详解(值校验、范围校验、长度校验、格式校验)

    Java中4种校验注解详解(值校验、范围校验、长度校验、格式校验)

    这篇文章主要给大家介绍了关于Java中4种校验注解详解的相关资料,分别包括值校验、范围校验、长度校验、格式校验等,Java注解(Annotation)是一种元数据,它可以被添加到Java代码中,并可以提供额外的信息和指令,需要的朋友可以参考下
    2023-08-08
  • Spring+Mybatis+Mysql搭建分布式数据库访问框架的方法

    Spring+Mybatis+Mysql搭建分布式数据库访问框架的方法

    这篇文章主要介绍了Spring+Mybatis+Mysql搭建分布式数据库访问框架的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-03-03
  • java后台防止表单重复提交方法详解

    java后台防止表单重复提交方法详解

    这篇文章主要介绍了后台防止表单重复提交,利用Session防止表单重复提交,判断请求url和数据是否和上一次相同,利用Spring AOP和redis的锁需要的朋友可以参考下
    2022-12-12
  • Spring aop失效的几种解决方案

    Spring aop失效的几种解决方案

    这篇文章主要介绍了Spring aop失效的几种解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Java防止文件被篡改之文件校验功能的实例代码

    Java防止文件被篡改之文件校验功能的实例代码

    这篇文章主要介绍了Java防止文件被篡改之文件校验功能,本文给大家分享了文件校验和原理及具体实现思路,需要的朋友可以参考下
    2018-11-11
  • 基于Java编写简易的算式测试程序

    基于Java编写简易的算式测试程序

    本文将利用Java语言编写一个简易的算式测试程序,这个程序可以自动生成指定数量的加减乘三则运算题目,感兴趣的小伙伴可以了解一下
    2022-05-05
  • Java由浅入深通关抽象类与接口下

    Java由浅入深通关抽象类与接口下

    在类中没有包含足够的信息来描绘一个具体的对象,这样的类称为抽象类,接口是Java中最重要的概念之一,它可以被理解为一种特殊的类,不同的是接口的成员没有执行体,是由全局常量和公共的抽象方法所组成,本文给大家介绍Java抽象类和接口,感兴趣的朋友一起看看吧
    2022-04-04
  • 一篇超详细的Spring Boot整合Mybatis文章

    一篇超详细的Spring Boot整合Mybatis文章

    大家都知道springboot搭建一个spring框架只需要秒秒钟。下面通过实例代码给大家介绍一下springboot与mybatis的完美融合,非常不错,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2021-07-07
  • 一文搞懂Java JDBC中的SQL注入问题

    一文搞懂Java JDBC中的SQL注入问题

    在用户输入的数据中有SQL关键字或语法,并且关键字或语法参与了SQL语句的编译,导致SQL语句编译后的条件为true,一直得到正确的结果,这种现象就是SQL注入,这篇文章主要介绍了一文搞懂Java JDBC中的SQL注入问题,需要的朋友可以参考下
    2022-10-10

最新评论