題記部分
一、簡介
為了簡化開發,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(可在水平方向上拉伸的間距)
案例三
三、標題
— 要養成終身學習的習慣 —