前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >常用布局管理器

常用布局管理器

作者头像
用户9184480
发布2024-12-19 08:27:58
发布2024-12-19 08:27:58
12000
代码可运行
举报
文章被收录于专栏:云计算linux云计算linux
运行总次数:0
代码可运行

12.1 常用布局管理器

布局管理器也就是GUI中的布局设置,是指窗口上的组件遵循一定的规则来排列,并会随着窗口大小的变化来变化组件大小和位置的布局方式。

当一个容器被创建后,它们有相应的默认布局管理器,用户可以为容器指定不同的布局管理器,在不同的布局管理器下,同一个组件将会有不同的显示效果。在java.awt包中提供了五种布局管理器,每种布局管理器对应一种布局策略,分别是FlowLayout(流式布局管理器)、BorderLayout(边界布局管理器)、GridLayout(网格布局管理器)、GridBagLayout(网格包布局管理器)和CardLayout(卡片布局管理器)。javax.swing包中提供的布局管理器有盒式布局管理器BoxLayout、重叠布局管理器OverlayLayout和弹簧布局管理器SpringLayout等。

12.5.1 FlowLayout

FlowLayout类属于流式布局管理器,使用此种布局方式会使所有的组件像流水一样依次进行排列,FlowLayout类的常量及构造方法如表12.17所示。

  • FlowLayout类的常量及构造方法

常量及构造方法声明

功能描述

public static final int CENTER

行内组件居中对齐

public static final int LEFT

行内组件左对齐

public static final int RIGHT

行内组件右对齐

public FlowLayout()

创建一个FlowLayout,居中对齐,默认的水平和垂直间距是5个单位

public FlowLayout(int align)

创建一个FlowLayout,并指定对齐方式,垂直间距默认是5个单位

public FlowLayout(int align,int hgap,int vgap)

创建一个FlowLayout,并指定对齐方式和垂直间距

表12.7中列举了FlowLayout类的常量及构造方法,接下来通过一个案例来演示FlowLayout布局管理器的使用,如例12-16所示。

例12-16 Demo1216.java

代码语言:javascript
代码运行次数:0
复制
 1import java.awt.*;
 2import javax.swing.*;
 3public class Demo1216 {
 4    public static void main(String[] args) {
 5        JFrame jFrame = new JFrame("JFrame窗口下的流式布局管理器");	
 6        // 创建JFrame对象
 7        // 设置窗体中布局管理器为FlowLayout
 8        jFrame.setLayout(new FlowLayout(FlowLayout.CENTER, 30, 3));
 9        JButton jButton = null;
 10        for (int i = 0; i < 8; i++) {
 11            jButton = new JButton("按钮- " + i);	// 创建按钮
 12            jFrame.add(jButton);					// 将按钮加入到JFrame
 13         }
 14        jFrame.setSize(400, 150); 			      // 设置长和宽
 15        jFrame.setLocation(500, 200); 			// 设置窗口相对位置
 16        jFrame.setVisible(true); 				        // 设置为可见
 17        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 18    }
 19}

程序的运行结果如图12.18所示。

常用布局管理器_swing
常用布局管理器_swing
  • 例12-16运行结果左图为程序运行初始结果,右图是将窗口向右拉大后的结果

图12.18中,运行程序创建Frame窗体后,将布局设置为使用FlowLayout布局管理器并设置组件之间的水平和垂直距离,之后循环添加8个按钮到Frame中,最后设置Frame窗体的长宽以及可见。

12.5.1 BorderLayout

BorderLayout类将一个窗体的版面分成东、西、南、北、中5个区域,可以直接将需要的组件放到这5个区域中,BorderLayout类的常量及构造方法如表12.18所示。

  • BorderLayout类的常量及构造方法

常量及构造方法声明

功能描述

BorderLayout.EAST

将组件设置在右方

BorderLayout.WEST

将组件设置在左方

BorderLayout.SOUTH

将组件设置在下方

BorderLayout.NORTH

将组件设置在北方

BorderLayout.CENTER

将组件设置在中央

public BorderLayout()

创建一个没有间距的BorderLayout布局器

public BorderLayout(int hgap,int vgap)

创建一个有水平和垂直间距的BorderLayout布局器

表12.18中列举了BorderLayout类的常量及构造方法,接下来通过一个案例来演示BorderLayout布局管理器的使用,如例12-17所示。

例12-17 Demo1217.java

代码语言:javascript
代码运行次数:0
复制
 1import java.awt.*;
 2import javax.swing.*;
 3public class Demo1217{
 4	public static void main(String[] args) {
 5	   // 创建JFrame对象
 6        JFrame jFrame = new JFrame("JFrame窗口下的边框式布局管理器");	      
 7        // 设置窗体中布局管理器为BorderLayout
 8        jFrame.setLayout(new BorderLayout(10,10));
 9        jFrame.add(new JButton("右"),BorderLayout.EAST);
 10        jFrame.add(new JButton("左"),BorderLayout.WEST);
 11        jFrame.add(new JButton("下"),BorderLayout.SOUTH);
 12        jFrame.add(new JButton("上"),BorderLayout.NORTH);
 13        jFrame.add(new JButton("中"),BorderLayout.CENTER);
 14        jFrame.setSize(420, 250); 				// 设置长和宽
 15        jFrame.setLocation(500, 200); 			// 设置窗口相对位置
 16        jFrame.setVisible(true); 				// 设置为可见
 17        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	
 18   }
 19}

程序的运行结果如图12.19所示。

  • 例12-17运行结果
常用布局管理器_swing_02
常用布局管理器_swing_02

图12.19中,运行程序创建Frame窗体后,将布局设置为使用BorderLayout布局管理器并设置组件之间的水平和垂直距离都为10,之后添加5个按钮到Frame中并指定常量,用于布局的位置,最后设置Frame窗体的长宽以及可见。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-07-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 12.1 常用布局管理器
    • 12.5.1 FlowLayout
    • 12.5.1 BorderLayout
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档