题记部分
一、简介
为了简化开发,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(可在水平方向上拉伸的间距)
案例三
三、标题
— 要养成终身学习的习惯 —