千家信息网

Java Swing的布局方式是什么

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,本文小编为大家详细介绍"Java Swing的布局方式是什么",内容详细,步骤清晰,细节处理妥当,希望这篇"Java Swing的布局方式是什么"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一
千家信息网最后更新 2025年01月19日Java Swing的布局方式是什么

本文小编为大家详细介绍"Java Swing的布局方式是什么",内容详细,步骤清晰,细节处理妥当,希望这篇"Java Swing的布局方式是什么"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

边框布局管理器

BorderLayout(边框布局管理器),是Window、JFrame和JDialog的默认布局管理器。它主要将窗口分为了五个部位,分别是东(East)、西(West)、南(South)、北(North)和中(Center),分别对应了窗口的右、左、下、上、中。

BorderLayout的常用构造方法:

  • BorderLayout() 创建一个没有间隙的 Border 布局

  • BorderLayout(int hgap, int vgap) 创建一个有间隙的 Border 布局,其中 hgap 表示横向间隙、 vgap 表示纵向间隙。

具体实例代码:

import javax.swing.*;import java.awt.*;public class Border {    public static void main(String[] args) {        JFrame jf = new JFrame();        jf.setBounds(100,100, 800,600);        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);        jf.setLayout(new BorderLayout()); // 设置为没有间隙的 Border 布局        JButton btn1 = new JButton("上");        JButton btn2 = new JButton("左");        JButton btn3 = new JButton("中");        JButton btn4 = new JButton("右");        JButton btn5 = new JButton("下");        jf.add(btn1, BorderLayout.NORTH);        jf.add(btn2, BorderLayout.WEST);        jf.add(btn3, BorderLayout.CENTER);        jf.add(btn4, BorderLayout.EAST);        jf.add(btn5, BorderLayout.SOUTH);        jf.setVisible(true);    }}

根据以上运行结果可以看见,在对应的位置会自动填充相应的内容。那么如果对应的位置没有的内容,那么会发生什么呢?我们可以先尝试把其中一个注释掉

可见,命名为"上"的按钮已经消失掉了,取而代之的是左中右自动填充了缺失的部分。尝试了分别将其他几个注释掉,也是一样的结果,可以得出CENTER区域会自动拉伸填充缺失的部分。

流式布局管理器

FlowLayout(流式布局管理器),是JPanel和JApplet的默认布局管理器。FlowLayout 会按照从上往下,从左到右的顺序规律逐个定位组件。跟别的布局管理器不一样的是,FlowLayout不会限制它里面所有组件的大小,而是允许这些组件有自己的大小。

常用构造方法如下:

  • FlowLayout() 默认是创建一个居中对齐,水平垂直皆为5像素的布局管理器。

  • FlowLayout(int align) 创建一个水平垂直为5像素,自定义是左对齐、右对齐或是居中的布局管理器。

  • FlowLayout(int align, int hgap, int vgap) 自定义对齐方式,以及水平垂直方向像素的布局管理器。

具体代码:

import javax.swing.*;import java.awt.*;public class Flow {    public static void main(String[] args) {        JFrame jf = new JFrame("FLOWLAYOUT");        jf.setBounds(100,100,800,600);        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);        JPanel jp = new JPanel();        JButton btn1 = new JButton("1");        JButton btn2 = new JButton("2");        JButton btn3 = new JButton("3");        JButton btn4 = new JButton("4");        JButton btn5 = new JButton("5");        JButton btn6 = new JButton("6");        JButton btn7 = new JButton("7");        JButton btn8 = new JButton("8");        JButton btn9 = new JButton("9");        jp.add(btn1);        jp.add(btn2);        jp.add(btn3);        jp.add(btn4);        jp.add(btn5);        jp.add(btn6);        jp.add(btn7);        jp.add(btn8);        jp.add(btn9);        // 想面板添加一个流式布局管理器你,设置横间距像素为180,纵间距为50        jp.setLayout(new FlowLayout(FlowLayout.LEADING, 180, 50));        // 设置背景色        jp.setBackground(Color.GRAY);        jf.add(jp);        jf.setVisible(true);    }}

读到这里,这篇"Java Swing的布局方式是什么"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

0