JavaGUI - [04] BoxLayout

题记部分

 

 

一、简介

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

 

案例三

 

 

 

 

三、标题

 

 

 

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

posted @ 2024-05-06 15:46  HOUHUILIN  阅读(6)  评论(0编辑  收藏  举报