首页 > 编程语言 >JavaGUI - [04] BoxLayout

JavaGUI - [04] BoxLayout

时间:2024-05-06 15:57:10浏览次数:23  
标签:Box 容器 04 frame JavaGUI add BoxLayout new

题记部分

 

 

一、简介

  为了简化开发,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对象设置给frame
        frame.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(可在水平方向上拉伸的间距)

 

案例三

 

 

 

 

三、标题

 

 

 

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

标签:Box,容器,04,frame,JavaGUI,add,BoxLayout,new
From: https://www.cnblogs.com/houhuilinblogs/p/18175140

相关文章

  • JavaGUI - [03] LayoutManager布局管理器
    Component中有一个方法setBounds()可以设置当前容器的位置和大小,但如果我们手动为组件设置位置和大小的话,就会造成程序的不通用性。LayoutManager布局管理器可以根据运行平台来自动调整组件大小,程序员不用再手动设置组件的大小和位置,只需要为容器选择合适的布局管理器即可。 ......
  • 【2024-04-30】无关岗位
    20:00在你发怒的时候,要紧闭你的嘴,免得增加你的怒气。                                                 ——苏格拉底昨天约了一位前同事吃饭聊天,在路边喝了杯茶饮,在街......
  • 20240504 —— Goodbye 2024(1/3).
    很久没有用心写过随笔了。写随笔对我来说是个很困难的事情,因为我文笔烂完了。每次都是写前觉得有一堆东西可以写,写的时候就不知道咋连结在一起,最后乱写了一堆发出来。2024/5/422:39看了会物理书后累了打了会块(TETR.IO),3:5,DEFEAT。怎么回事呢。打完前两局感觉对手硬实力不是......
  • ubuntu20.04手动换源——个人向
    备份你的源,然后替换你的Linux主机上/etc/apt/source.list即可。笔者用的源如下:点击查看代码#debcdrom:[Ubuntu20.04.4LTS_FocalFossa_-Releaseamd64(20220223)]/focalmainrestricted#Seehttp://help.ubuntu.com/community/UpgradeNotesforhowtoupgra......
  • ubuntu_24.04 Noble LTS安装docker desktop启动无窗口及引擎启动失败的解决方法
    ubuntu_24.04LTS安装dockerdesktop启动无窗口及引擎启动失败的解决方法1.安装dockerdesktop后启动无窗口现象:执行sudoaptinstall./docker-desktop-4.29.0-amd64.deb成功安装dockerdesktop后,无论是在菜单里点击DockerDesktop图标还是执行systemctl--userstartdocker......
  • 代码随想录算法训练营第11天 | 栈与队列 20.有效的括号 1047.删除字符串中的所有相邻
    leetcode20.有效的括号题目20.有效的括号给定一个只包括'(',')','{','}','[',']'的字符串s,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。解题思路实现代码leetcod......
  • Ubuntu 20.04.06 修改主机名
    原因修改主机名vi/etc/hostname重启reboot......
  • ORA-04063: Package Body “SYS.DBMS_CUBE_EXP” While Expdp
    1.场景数据库版本:11.2.0.4当执行@?/rdbms/admin/awrextr.sql进行awr性能分析数据导出时,报错:ORA-20115:datapumpexportencounterederror:ORA-39127:unexpectederrorfromcalltoexport_string:=SYS.DBMS_CUBE_EXP.INSTANCE_EXTENDED_INFO_EXP('AW$EXPRESS','SYS',......
  • Ubuntu 20.04.6 安装教程 (VMware16)
    1.下载ubuntu进入官网地址:https://ubuntu.com/选择版本2.VMware创建虚拟机3.安装Ubuntu选择iso文件启动Ubuntu选择语言安装模式没有检测到操作系统?没关系选择地区你是Ubuntu系统的某一位用户耐心等待耐心等待之时,做件重要的事重启Ub......
  • 2024-05-04 css实现鼠标移动至盒子,盒子在约定时间内进行放大缩小
    放大缩小css@keyframesscaleAnimation{0%{transform:scale(1);}50%{transform:scale(1.2);}100%{transform:scale(1);}}完整代码:<!DOCTYPEhtml><htmllang="en"><head><metacharset=&q......