Java中三种常用布局方式小结

 更新时间:2025年02月07日 10:51:06   作者:徒步僧  
在Java Swing和JavaFX中,布局管理器(Layout Managers)用于控制组件(如按钮、文本框等)在容器(如窗口、面板等)内的位置和大小,下面介绍Java Swing中常用的三种布局方式,需要的朋友可以参考下

1. FlowLayout(流式布局)

  • 特点FlowLayout 是最简单的布局管理器之一,它按照从左到右、从上到下的顺序排列组件。当一行放不下更多的组件时,会自动换行。
  • 适用场景:适用于组件数量不多,且不需要复杂对齐的情况。
  • 示例代码
import javax.swing.*;
import java.awt.*;
 
public class FlowLayoutExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("FlowLayout Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);
 
        // 设置布局管理器为FlowLayout
        frame.setLayout(new FlowLayout());
 
        // 添加组件
        frame.add(new JButton("Button 1"));
        frame.add(new JButton("Button 2"));
        frame.add(new JButton("Button 3"));
 
        // 显示窗口
        frame.setVisible(true);
    }
}

2. BorderLayout(边界布局)

  • 特点BorderLayout 将容器划分为五个区域:北(North)、南(South)、东(East)、西(West)和中心(Center)。每个区域最多只能放置一个组件。
  • 适用场景:适用于需要在窗口的固定位置放置组件的情况,如标题栏、状态栏等。
  • 示例代码
import javax.swing.*;
import java.awt.*;
 
public class BorderLayoutExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("BorderLayout Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);
 
        // 设置布局管理器为BorderLayout
        frame.setLayout(new BorderLayout());
 
        // 添加组件
        frame.add(new JButton("North"), BorderLayout.NORTH);
        frame.add(new JButton("South"), BorderLayout.SOUTH);
        frame.add(new JButton("East"), BorderLayout.EAST);
        frame.add(new JButton("West"), BorderLayout.WEST);
        frame.add(new JButton("Center"), BorderLayout.CENTER);
 
        // 显示窗口
        frame.setVisible(true);
    }
}

3. GridLayout(网格布局)

  • 特点GridLayout 将容器划分为一个矩形网格,每个组件占据一个单元格,所有单元格的大小相同。
  • 适用场景:适用于需要将组件均匀分布在一个网格中的情况,如计算器界面。
  • 示例代码
import javax.swing.*;
import java.awt.*;
 
public class GridLayoutExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("GridLayout Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);
 
        // 设置布局管理器为GridLayout,3行3列
        frame.setLayout(new GridLayout(3, 3));
 
        // 添加组件
        for (int i = 1; i <= 9; i++) {
            frame.add(new JButton("Button " + i));
        }
 
        // 显示窗口
        frame.setVisible(true);
    }
}

总结

  • FlowLayout:简单易用,适合组件较少且不需要复杂对齐的情况。
  • BorderLayout:适用于需要在固定位置放置组件的情况。
  • GridLayout:适用于需要将组件均匀分布在网格中的情况。

到此这篇关于Java中三种常用布局方式小结的文章就介绍到这了,更多相关Java常用布局方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Mybatis和orcale update语句中接收参数为对象的实例代码

    Mybatis和orcale update语句中接收参数为对象的实例代码

    Mybatis的 mapper.xml 中 update 语句使用 if 标签判断对像属性是否为空值。本文重点给大家介绍Mybatis和orcale update语句中接收参数为对象的实例代码,需要的朋友参考下吧
    2017-09-09
  • java实现1M图片压缩优化到100kb实现示例

    java实现1M图片压缩优化到100kb实现示例

    这篇文章主要为大家介绍了java实现1M图片压缩优化到100kb示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • mybatis如何实现saveOrUpdate

    mybatis如何实现saveOrUpdate

    这篇文章主要介绍了mybatis如何实现saveOrUpdate问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Java中String.format的使用方法总结

    Java中String.format的使用方法总结

    这篇文章主要介绍了Java中String.format的用法总结的相关资料,需要的朋友可以参考下
    2017-03-03
  • 一文彻底搞懂Java日期时间类详解

    一文彻底搞懂Java日期时间类详解

    这篇文章主要给大家介绍了关于Java日期时间类的相关资料,Calendar类的功能要比Date类强大很多,可以方便的进行日期的计算,获取日期中的信息时考虑了时区等问题,需要的朋友可以参考下
    2023-10-10
  • java实现砸金蛋抽奖功能

    java实现砸金蛋抽奖功能

    这篇文章主要为大家详细介绍了java实现砸金蛋抽奖功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • Java 汇编JVM编写jasmin程序的操作方法

    Java 汇编JVM编写jasmin程序的操作方法

    这篇文章主要介绍了Java 汇编JVM编写jasmin程序的操作方法,本文通过几个示例讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • java实现获取安卓设备里已安装的软件包

    java实现获取安卓设备里已安装的软件包

    本文给大家介绍的是如何获取设备中已经安装的应用软件包的代码,其核心方法原理很简单,我们通过Android中提供的PackageManager类,来获取手机中安装的应用程序信息
    2015-10-10
  • Java接口和抽象类的区别深入剖析

    Java接口和抽象类的区别深入剖析

    这篇文章主要介绍了Java接口和抽象类的区别,对于Java的初学者来说是需要准确掌握的概念!
    2014-07-07
  • IDEA 中配置 Gradle 和安装使用教程

    IDEA 中配置 Gradle 和安装使用教程

    Gradle本身是基于Groovy脚本语言进行构建的,并通过 Domain Specific Language(DSL 语言)进行描述和控制构建逻辑,本文重介绍了IDEA 中配置 Gradle 和使用,需要的朋友可以参考下
    2023-10-10

最新评论