JavaGUI - [04] BoxLayout

news/2024/10/8 4:34:29

题记部分

 

 

一、简介

  为了简化开发,Swing引入了一个新的布局管理器:BoxLayout。BoxLayout可以在垂直和水平两个方向上摆放GUI组件,BoxLayout提供了如下一个简单的构造器:

BoxLayout(Container target,int axis)

  指定创建基于target容器的BoxLayout布局管理器,该布局管理器里的组件按axis方向排列。其中axis有BoxLayout.X_AXIS(横向)和BoxLayout.Y_AXIS(纵向)两个方向。

 

案例一

垂直方向排列组件

package com.harley.layout;import javax.swing.*;
import java.awt.*;/*** @author harley* @date 2024/05/06 15:15*/
public class s09_BoxLayoutDemo {public static void main(String[] args) {Frame frame = new Frame("BoxLayoutDemo");// 1. 基于frame容器,创建一个BoxLayout对象BoxLayout boxLayout = new BoxLayout(frame, BoxLayout.Y_AXIS);// 2. 把BoxLayout对象设置给frameframe.setLayout(boxLayout);// 4. 往frame中添加两个按钮组件frame.add(new Button("按钮1"));frame.add(new Button("按钮2"));frame.pack();frame.setVisible(true);}
}

 

案例二

  在java.swing包中,提供了一个新的容器Box,该容器的默认布局管理器就是BoxLayout,大多数情况下,shiyongBox容器去容纳多个GUI组件,然后再把Box容器作为一个组件,添加到其他的容器中,从而形成整体窗口布局。

static Box createHorizontalBox():创建一个水平排列的Box容器

static Box createVerticalBox():创建一个垂直排列的Box容器

代码

package com.harley.layout;import javax.swing.*;
import java.awt.*;/*** @author harley* @date 2024/05/06 15:25*/
public class s10_BoxLayoutDemo2 {public static void main(String[] args) {// 1.创建Frame对象Frame frame = new Frame("BoxLayout");// 2. 创建一个水平排列的容器Box hBox = Box.createHorizontalBox();// 3. 往当前容器中添加两个按钮hBox.add(new Button("水平按钮1"));hBox.add(new Button("水平按钮2"));// 4. 创建一个垂直排列的容器Box vBox = Box.createVerticalBox();// 5. 往当前容器中添加两个按钮vBox.add(new Button("垂直按钮1"));vBox.add(new Button("垂直按钮2"));// 6. 把两个Box容器添加到Frame中展示frame.add(hBox, BorderLayout.NORTH);frame.add(vBox);frame.pack();frame.setVisible(true);}
}

 

 

二、进阶

被BoxLayout管理的容器中的组件之间是没有间隔的,如何给组件设置间距?

static Component createHorizontalGlue()创建一条水平Glue(可在两个方向上同时拉伸的间距)

static Component createVerticalGlue()创建一条垂直Glue(可在两个方向上同时拉伸的间距)

static Component createHorizontalStrut(int width)

创建一条指定宽度(宽度固定,无法拉伸)的水平Strut(可在垂直方向上拉伸的间距)

static Component createVerticalStrut(int height)

创建一条指定高度(高度固定,无法拉伸)的垂直Strut(可在水平方向上拉伸的间距)

 

案例三

 

 

 

 

三、标题

 

 

 

— 要养成终身学习的习惯 —

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/28146.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

交换机基础及stp

一、交换机基础 交换机工作在数据链路层,转发数据帧,隔绝了以太网层的冲突域 1、泛洪未知单播泛洪 广播数据2、转发根据mac地址表进行转发 3、丢弃收到的arp请求中的目的mac地址是发起的接口,则会丢弃 二、stp(生成树协议) 环路引起广播风暴,网络中的主机会受到重复数据帧…

通过API触发airflow的DAG任务

背景 以前编写的DAG都是通过定时触发的,当前有一个场景需要通过手动提交API来触发,这样能够在用户需要的时候,主动触发执行任务,于是就有了这篇内容的摸索。 之前只知道airflow支持通过API来触发任务,但是具体如何操作是真不会,看了官方的API文档,也没找到具体方法,特别…

某塑料科技公司网络与机房监控运维项目

通过部署智和信通综合监控运维方案实时监控用户网络与机房内大量异构的交换机、路由器、服务器、AC/AP、数据库、防火墙、虚拟机、语音网关、硬盘录像机、行为管理等设备,及时发现并预警潜在问题,从而避免或减少故障带来的负面影响。 某塑料科技公司是由日本知名株式会…

ITIL4 服务价值系统(SVS):一场服务管理的革新之旅

在这个数字化时代,每一家企业都在追求高效的服务管理和卓越的客户体验。今天,我们就来聊一聊ITIL4中的服务价值系统(Service Value System, SVS)——一个让服务管理变得更加直观和高效的框架。 ITIL4服务价值系统:简明解读 SVS的核心理念非常朴素:一切始于客户需求,终于客…

[西湖论剑 2022]easy_api

源码审计 下载附件得war包,bandzip解压一下,审一下源码:这个没啥东西。反序列化入口,但是访问这里是需要绕过的:其实绕过也很简单,双斜杠就绕了:web.xml filter 绕过匹配访问(针对jetty)_jetty权限绕过-CSDN博客看lib里有啥依赖:fastjson1.2.48,这不老熟人了吗.....…

Linux 和 Windows11双系统安装

阅读目录 1.下载Linux系统 2. 制作Linux系统启动盘 3. 电脑分盘 4. 安装Ubuntu系统 5. 安装完成后可能遇到的黑屏问题解决 回到顶部 1.下载Linux系统 下载Linux系统的镜像文件,Linux系统有很多版本,Linux指的是系统内核,笔者下载的是Ubuntu系统,大家可以根据需要下载其他系…

深入解析CSS

层叠、优先级和继承 层叠层叠指的就是这一系列规则。 它决定了如何解决css样式规则冲突,是 CSS 语言的基础。 虽然有经验的开发人员对层叠有大体的了解,但是层叠里有些规则还是容易让人误解。当声明冲突时,层叠会依据三种条件解决冲突:样式表的来源:样式是从哪里来的,包括…

宝塔面板如何删除一个站点

我们一般的网站都是PHP+MySQL开发的,所以删除站点,就要先删数据库,再删网站目录 注意:一点要确保无用的再删 删除站点目录 十年开发经验程序员,离职全心创业中,历时三年开发出的产品《唯一客服系统》一款基于Golang+Vue开发的在线客服系统,软件著作权编号:2021SR146260…