Java GUI编程(11)---箱式布局BoxLayout

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

箱式布局BoxLayout, 把若干组件按水平或垂直方向依次排列放置.

实现原理就是快速创建水平/垂直箱容器(Box)

Box hB = Box.createHorizontalBox(); //创建一个水平箱

Box vB = Box.createVerticalBox(); //创建一个垂直箱

箱内的组件之间默认没有空隙并居中, 添加空隙则可创建用于填充空隙的不可见组件:glue、struts 和 rigidAreas。

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

//水平方向胶状组件,撑满水平方向剩余的空间

Component hGlue = Box.createHorizontalGlue();

垂直方向胶状组件,撑满垂直方向剩余的空间

Component vGlue = Box.createVerticalGlue();

//水平和垂直方向胶状组件

omponent 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));

演示代码,实现如下的布局效果

面板组件JPanel加入垂直箱布局,垂直箱内加入三个水平箱,每个水平箱内加入组件

演示代码


package com.msh.util;
import java.awt.Component;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

public class DemoBoxLayout {
    private static int WIDTH=400;
    private static int HEIGHT=200;
    public static void main(String[] args) {
        JFrame jf = new JFrame("演示箱式布局");
        jf.setSize(WIDTH, HEIGHT);
        jf.setLocationRelativeTo(null);
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        
        JPanel jp=new JPanel(); 
        
        Box hbox1=Box.createHorizontalBox(); //水平箱1
        JLabel label1=new JLabel("账户:");
        Component hStrut1 = Box.createHorizontalStrut(20);//一个20单位不可见组件        
        JTextField textField1=new JTextField(10);
        hbox1.add(label1); //水平箱加入一个标签
        hbox1.add(hStrut1); 
        hbox1.add(textField1);
        
        Box hbox2=Box.createHorizontalBox(); //水平箱2
        JLabel label2=new JLabel("密码:");
        Component hStrut2 = Box.createHorizontalStrut(20);
        JTextField textField2=new JTextField(10);
        hbox2.add(label2); 
        hbox2.add(hStrut2); 
        hbox2.add(textField2);
        
        Box hbox3=Box.createHorizontalBox(); ////水平箱3
        JButton button1=new JButton("登录");
        Component hStrut3 = Box.createHorizontalStrut(20);
        JButton button2=new JButton("注册");
        hbox3.add(button1); 
        hbox3.add(hStrut3); 
        hbox3.add(button2);
        
        Box vbox=Box.createVerticalBox(); //创建一个垂直箱
        Component vStrut1 = Box.createVerticalStrut(10);
        Component vStrut2 = Box.createVerticalStrut(20);
        vbox.add(hbox1);   //垂直箱加入一个水平箱1
        vbox.add(vStrut1);
        vbox.add(hbox2);  //垂直箱加入一个水平箱2
        vbox.add(vStrut2);
        vbox.add(hbox3);  //垂直箱加入一个水平箱3
        
        jp.add(vbox);
        jf.add(jp);
        jf.setVisible(true);  // 显示窗口
    }
    
}

程式运行

RK3588芯片:ALSA音频通路下HDMI与耳机自动切换的技术探索 摘要:本文详细探讨了基于RK3588芯片的HDMI与耳机自动切换方案。文章首先剖析了ALSA音频架构的核心组件与工作原理,接着介绍了RK3588芯片的硬件特性及音频处理优势。重点阐述了自动切换的实现原理,包括硬件检测机制、ALSA驱动处理逻辑和软件控制流程,并提供了详细的配置步骤。同时针对常见问题如切换异常、音频质量下降等给出了解决方案。该方案通过合理配置设备树和ALSA文件,实现了音频输出的智能切换,提升了用户体验,展现了RK3588在音频处理领域的强大性能。未来随着AI音频技术的发展,该方案在智能家居、 阅读详情

相关推荐

IEC104协议下的文件传输与软件升级的技术细节与操作流程

本文深入探讨IEC104协议下的文件传输过程和软件升级机制,揭示其背后的技术细节和操作流程。

2401_86189088的博客 2525

Java BoxLayout(盒子布局)布局管理器

2.4.6 BoxLayout 为了简化开发,Swing 引入了 一个新的布局管理器 : BoxLayout 。 BoxLayout 可以在垂直和 水平两个方向上摆放 GUI 组件, BoxLayout 提供了如下一个简单的构造器: 方法名称 方法功能 BoxLayout(Container target, int axis) 指定创建基于 target 容器的 BoxLayout 布局管理器,该布局管理器里的组件按 axis 方向排列。其中 axis 有 BoxLayout.X_AXIS(

ruan_luqingnian的博客 1万+

模拟调制系统实战:从AM到FM的5种调制方式对比与选型指南

本文深度解析AM、DSB、SSB、VSB、FM五种经典模拟调制方式,从实现电路、频谱效率、抗噪性能及工程成本等维度进行实战对比。通过MATLAB/Simulink仿真案例,提供清晰的选型决策框架,帮助工程师在无人机图传、短波通信、广播系统等具体项目中,根据带宽、功耗和抗干扰需求选择最优方案。

study的专栏 931

java界面设计 布局_[转载]Java图形化界面设计——布局管理器之BoxLayout布局(盒式布局)...

允许垂直或水平布置多个组件的布局管理器。这些组件将不包装,因此举例来说,垂直排列的组件在重新调整框架的大小时仍然被垂直排列。用水平组件和垂直组件的不同组合嵌套多面板的作用类似于GridBagLayout,但没那么复杂。该图显示了两个水平排列的面板,每个面板都包含 3 个垂直排列的组件。BoxLayout 管理器是用 axis参数构造的,该参数指定了将进行的布局类型。有四个选择:X_AXIS:从左到...

weixin_36116008的博客 1169

GEO数据库数据下载方法总结

#GEO数据下载 GEO是生信分析经常用到的数据库。经常需要从中获取表达矩阵,平台信息,meta信息等,本博文总结了几种下载GEO数据的方法,各有优劣,实际应用过程中自行选择适合自己的。 ##方法一:直接从浏览器中下载 以数据集GSE1001为例, 可以直接点击“Series Matrix Files”获取该样本txt格式的表达谱数据,一般我们认为这种处理过的表达谱数据是没有问题的,当然,具体情况具体分析。 打开下载的文件可以看到许多“#”开头的行,这些是注释信息,一般关注这些注释信息中的“data pr

sakoko_的博客 4万+

Linux之GTK系列教程

00、背上行囊1——程序员学习之道 01、背上行囊2——为什么要学习GTK 02、背上行囊3——GUI概述 03、背上行囊4——GTK简介 04、背上行囊5——GTK环境搭建( Linux ) 05、背上行囊6——GTK环境搭建( windows ) 06、踏上旅途1——一个简单的空白窗口 07、踏上旅途2——控件的添加 08、踏上旅途3——布局容器之水平布局 09、踏上旅途

每天积累一点点 2万+

Java BoxLayout叠放问题

将boxlayout放入其他的面板时:会出现组件被强行压缩的情况。

weixin_52412342的博客 424

PCL 点到面的ICP算法【2024最新版】

经典的点到面的ICP算法。博客长期更新,本文最新更新时间为:2024年10月18日。

点云侠的博客 36万+

【可视化Java GUI程序设计教程】第4章 布局设计

右击窗体,单击快捷菜单中的Set Layout。

have_to_be的博客 1912

SMOKE 3D:从 Python 到 C++ 实现车辆与行人单目 3D 视觉识别在 RK3588 上的深度部署

SMOKE的网络结构通常基于高性能的骨干网络(如DLA-34,您使用的模型就是基于此),通过编码器-解码器架构来提取特征。输入:RGB图像(本项目为骨干网络:用于特征提取。检测头热力图分支:预测关键点热力图。通常在热力图上进行NMS来找到局部最大值,即潜在的关键点位置。回归分支:对于每个关键点位置,预测上述的8维3D属性向量。分类分支:预测每个关键点对应的物体类别。置信度分支:预测每个关键点的置信度。本教程详细介绍了SMOKE单目3D目标检测模型在RK3588上的部署。我们从SMOKE的。

LXY_LOVE36的博客 436

中国国家级地面气象站基本气象要素日值数据集(V3.0)

气温数据TEM, 包括站点编号(sid), 纬度(lat), 经度(long), 高程(elev), 年(year), 月(month),日(day), 平均气温(tmean), 最高气温(tmax), 最低气温(tmin)气压数据PRS, 包括站点编号(sid), 纬度(lat), 经度(long), 高程(elev), 年(year), 月(month),日(day), 平均气压(pmean), 最高气压(pmax), 最低气压(pmin)中国国家级地面气象站基本气象要素日值数据集(V3.0)

J_Giser的博客 3896

Java Swing面板布局之箱式布局BoxLayout

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

qq_35980294的博客 4507

WPF数据绑定Binding对数据的转换与效验(四)

Binding的作用就是架在Source与Target之间的桥梁,数据可以在这座桥梁的帮助下来流通。就像现实世界中的桥梁会设置一些关卡进行安检一样,Binding这座桥上也可以设置关卡对数据的有效性进行检验,不仅如此,当Binding的两端要求使用不同的数据类型时,我们还可以为数据设置转换器。Binding用于数据有效性检验的关卡是它的ValidationRules属性,用于数据类型转换的关卡是它的Converter属性。

qq_30725967的博客 1627

3、JavaSwing 布局管理器——BoxLayout(箱式布局)

概述 官方JavaDocsApi: https://docs.oracle.com/javase/8/docs/api/javax/swing/BoxLayout.html https://docs.oracle.com/javase/8/docs/api/javax/swing/Box.html BoxLayout,箱式布局管理器。 它把若干组件按水平或垂直方向依次排列放置。Swing 提供了一个实现了 BoxLayout 的容器组件Box。使用 Box 提供的静态方法,可快速创建水平/垂.

树下一朵云的博客 1241

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Java使用箱式布局管理器

package com.han; import java.awt.BorderLayout; import java.awt.Container; import javax.swing.Box; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.

Gaowen_HAN的专栏 2671

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Java_GUI_布局_箱式布局

import java.awt.BorderLayout;import java.awt.Container;import java.awt.Dimension;import javax.swing.Box;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.sw

squall___3的编程专栏 995

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Java箱式布局_Java编程使用箱式布局管理器示例【基于swing组件】

本文实例讲述了Java编程使用箱式布局管理器。分享给大家供大家参考,具体如下:先来看看运行效果:完整代码如下:package awtDemo;import java.awt.BorderLayout;import java.awt.Container;import javax.swing.Box;import javax.swing.JButton;import javax.swing.JFram...

weixin_42546392的博客 244

Java Swing学习(4):箱式布局

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

Mr_qing的博客 1433

BoxLayout

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

JavaEdge全是干货的技术号 2255

箱式布局(BoxLayout)与 Box类

BoxLayout与其他布局管理器稍有不同,必须向其构造函数中传递容器实例的引用,由该容器使用BoxLayout。另外必须指定BoxLayout 中组件的布局方式:垂直排列(按列)或水平排列(按行)。用水平组件和垂直组件的不同组合嵌套多面板的作用类似于 GridBagLayout,但没那么复杂。         BoxLayout 管理器是用 axis 参数构造的,该参数指定了将进行的布局类

weixinru4631260的博客 7315

博为峰Java技术文章 ——JavaSE Swing BoxLayout布局管理器II

博为峰小博老师: 箱式布局组件之间没有空隙,那么就要通过一个称为填充物的组件来提供空隙。箱式布局管理器提供了3种填充物:支柱、固定区、弹簧。下面将通过实例来介绍如何使用箱式布局管理器布局。 public class BWF{ public static int WIDTH=200; public static int HEIGHT=150; public static void main

bwf_erg的博客 335

java-Layout(布局管理器)

Layout(布局管理器) 布局管理器:布局管理就是用于指定组件的 摆放位置的。每种布局管理器都有自己的摆放风格 注意:所有的布局管理器均是针对容器来使用的,包括顶层容器和中间容器。 一、布局管理器所属类包 所属类包 布局管理器名称 说明 Java.awt FlowLayout(流式布局) 组件按照加入的先后顺序按照设置的对齐方式从左向右排列,一行排满...

hyty的博客 2万+

java中容器(顶层容器和中间容器)的布局管理器

目录一、布局管理器所属类包二、容器的默认布局管理器 Java能够以像素为单位对组件进行精确的定位,但是其在不同的系统中将会有一定的显示差异,使得显示效果不同,为此java提供了布局管理器,使编写的图形界面具有良好的平台无关性。 注意:所有的布局管理器均是针对容器来使用的,包括顶层容器和中间容器。 一、布局管理器所属类包 所属类包 布局管理器名称 说明 Java.awt FlowLayout(流式布局) 组件按照加入的先后顺序按照设置的对齐方式从左向右排列,一行排满到下一行开始继续排列 J

shiGXW的博客 2498

java语法学习(11)GUI——布局管理器

布局管理器

dearzcs的博客 1014

java容器的布局_java布局学习 (三)

前文已经讲了常用的4个布局了,今天再介绍最后的三个布局:5、CardLayout6、BoxLayout7、空白布局null(五)CardLayout 纸牌布局首先这种布局不是二维布局,而是一种伪三维的布局。容器将所有的二维控件比作一张张的纸牌(card),放在容器当中。然后根据需要,返回不同位置的控件(纸牌)。但是从界面样式上看,这就是简单的panel。构造函数有如下两种:1 CardLayo...

weixin_30755903的博客 632

Java 图形设计 -- 布局策略

一、背景 在界面设计中,一个容器要放置许多组件,为了美观,为组件安排在容器中的位置,这就是布局设计。 java.awt 中定义了多种布局类,每种布局类对应一种布局策略。 常用布局类有五种: 流布局管理器 FlowLayout: 依次放置组件。 边界布局管理器 BorderLayout: 将组件放置在边界上。 箱式布局管理器 BoxLayout: 管理一组水平或垂直排列的组件。 卡片布局管理器 CardLayout: 将组件像扑克牌一样叠放,而每次只能显示其中一个组件。 网格布局管理器 GridLayout

weixin_45975659的博客 1160
上一篇: Java GUI编程(10)---卡片布局CardLayout
下一篇: Java GUI编程(12)---分组布局GroupLayout
木生火
博客等级 码龄10年 128粉丝 454原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值