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常用布局方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • springboot如何关掉tomcat容器

    springboot如何关掉tomcat容器

    这篇文章主要介绍了springboot如何关掉tomcat容器,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Springboot与vue实现数据导出方法具体介绍

    Springboot与vue实现数据导出方法具体介绍

    这篇文章主要介绍了Springboot与vue实现数据导出方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-02-02
  • SpringBoot如何使用mail实现登录邮箱验证

    SpringBoot如何使用mail实现登录邮箱验证

    在实际的开发当中,不少的场景中需要我们使用更加安全的认证方式,同时也为了防止一些用户恶意注册,我们可能会需要用户使用一些可以证明个人身份的注册方式,如短信验证、邮箱验证等,这篇文章主要介绍了SpringBoot如何使用mail实现登录邮箱验证,需要的朋友可以参考下
    2024-06-06
  • 使用mockito编写测试用例教程

    使用mockito编写测试用例教程

    这篇文章主要为大家介绍了使用mockito编写测试用例教程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Spring MVC概念+项目创建+@RequestMappring案例代码

    Spring MVC概念+项目创建+@RequestMappring案例代码

    Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet,这篇文章主要介绍了Spring MVC概念+项目创建+@RequestMappring,需要的朋友可以参考下
    2023-02-02
  • Java用Arrays.asList初始化ArrayList实例方法

    Java用Arrays.asList初始化ArrayList实例方法

    在本篇文章里小编给大家分享的是关于Java中使用Arrays.asList初始化ArrayList的知识点内容,需要的朋友们参考下。
    2019-10-10
  • IDEA2021没有Web Application的解决过程及分析

    IDEA2021没有Web Application的解决过程及分析

    在IDEA中创建WebApplication项目时,若AddFrameworksSupport无该选项,可先创建普通Java项目后添加框架支持,或通过快捷键打开registry,勾选javaee.legacy.project.wizard以启用,如解决您的问题,欢迎点赞支持
    2025-09-09
  • 解决java.lang.IllegalArgumentException异常问题

    解决java.lang.IllegalArgumentException异常问题

    这篇文章主要介绍了解决java.lang.IllegalArgumentException异常问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • Java创建和启动线程的两种方式实例分析

    Java创建和启动线程的两种方式实例分析

    这篇文章主要介绍了Java创建和启动线程的两种方式,结合实例形式分析了java多线程创建、使用相关操作技巧与注意事项,需要的朋友可以参考下
    2019-09-09
  • SpringBoot ApplicationContext接口深入分析

    SpringBoot ApplicationContext接口深入分析

    ApplicationContext是Spring应用程序中的中央接口,由于继承了多个组件,使得ApplicationContext拥有了许多Spring的核心功能,如获取bean组件,注册监听事件,加载资源文件等
    2022-11-11

最新评论