题记部分
一、简介
为了简化开发,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