Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

探索Java Swing的奇妙世界

目录概览

引言

核心理念

  • Java Swing 的架构精髓

Java Swing,这个为Java量身定做的GUI工具包,是Java基础类库中的一员,它基于Java AWT构建,提供了丰富的轻量级、可定制的图形用户界面(GUI)组件。

相较于AWT,Swing提供了更多优秀的屏幕显示元素,展现出更高的灵活性和可定制性,同时在跨平台性能上也更胜一筹。

Swing架构图

  • 组件与容器的协同

Java Swing 提供了众多组件(例如按钮、标签、文本框等)和容器(例如面板、框架等),组件负责展示信息和接收用户输入,而容器则负责管理和布局这些组件。

  • 布局管理器的魔法

布局管理器在Java Swing中扮演着至关重要的角色,它决定了组件在容器中的位置和大小。Java Swing提供了多种布局管理器,如流式布局、边界布局和网格布局等,以适应不同的布局需求。

  • 跨平台的天赋

Java Swing的跨平台能力是其显著优势之一。Swing使用轻量级组件,这些组件不直接与特定操作系统交互,而是通过Java的图形引擎来绘制,因此可以在多种操作系统上运行,包括Windows、macOS和Linux,且在任何平台上都能保持一致的外观和行为。

组件与容器的奥秘

组件根据功能不同,可以分为顶层容器(窗口)、中间容器(面板)和基本组件:

  • 顶层容器(窗口):窗口类组件,可以独立显示,一个图形界面至少需要一个窗口。

例如:JFrame(大多数Swing图形界面程序使用JFrame作为顶层容器)、JDialog(对话框)。

  • 中间容器(面板):作为基本组件的载体,不可独立显示。

最顶层的中间容器必须依托在顶层容器(窗口)内。

常用的中间容器(面板)包括带滚动条的面板组件、JSplitPane(分隔面板)、JTabbedPane(选项卡面板)、JLayeredPane(层级面板)。

  • 基本组件:直接实现人机交互的组件。

常用的基本组件包括JButton(按钮)、JCheckBox(复选框)、JComboBox(下拉列表框)、JLabel(标签)、JRadioButton(单选按钮)、JTextField(单行文本框)、JTextArea(多行文本框)、JPasswordField(单行密码文本框)。

布局管理器的魔法

布局管理器控制组件在容器中的位置和大小排列方式,以实现灵活和自适应的界面布局。

GridLayout(网格布局)

  • 特点:将容器划分为规则的行列网格。

  • 组件放置规则:

  • 所有单元格大小相同,会根据容器的大小自动调整。

  • 组件按照从左到右、从上到下的顺序依次填充单元格。

  • 常用构造函数:

java
public GridLayout(int rows, int cols)
public GridLayout(int rows, int cols, int hgap, int vgap)

其中 rows 参数表示行数, cols 参数表示列数, hgapvgap 参数分别表示水平和垂直间距。

  • 代码示例

java
frame.setLayout(new GridLayout(3, 2)); // 3行2列

GridBagLayout(网格包布局)

  • 特点:是最灵活和强大的布局管理器,但也是最复杂的。

  • 组件放置规则:

  • 可以为每个组件指定详细的位置和大小约束。

  • 支持跨行、跨列的组件。

  • 代码示例

```java
JPanel panel = new JPanel(new GridBagLayout());
GridBagConstraints constraints = new GridBagConstraints();

JButton button1 = new JButton("Button 1");
constraints.gridx = 0;
constraints.gridy = 0;
panel.add(button1,

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/4621.html

(0)
LomuLomu
上一篇 2024 年 12 月 28 日 上午8:24
下一篇 2024 年 12 月 28 日 上午9:25

相关推荐

  • 多租户解析与Demo

    在做Saas应用时,多租户解析往往是很重要的组成部分,也是用户访问网站最先处理的逻辑。 文前介绍: 多租户的数据库实现方式主要有三种: 单一数据库实现,每条数据标识租户Id进行识别数据属于哪个租户 一租户一个数据库,能够做到完全的数据隔离 混合模式,部分数据在一张表上,主要是一些基础数据;其他业务数据分库存储。 无论是哪种方式都要知道租户是谁才能查询数据库。…

    2024 年 12 月 30 日
    40100
  • Bolt.new 30秒做了一个网站,还能自动部署,难道要吊打 Cursor?

    大家好,我是汤师爷~ 这篇聊聊 Bolt.new 和 Cursor 的对比。 Bolt.new 是一款基于 SaaS 的 AI 编码平台。它由 LLM 驱动的智能体作为底层,并结合 WebContainers 技术,让用户可以直接在浏览器中进行编码和运行。其主要优势包括: 支持前后端同时开发; 项目文件夹结构可视化; 环境自托管,自动安装依赖(如 Vite、…

    2025 年 1 月 16 日
    58400
  • Java List 集合详解:基础用法、常见实现类与高频面试题解析

    正文 在 Java 集合框架中,List 是一个非常重要的接口,广泛用于存储有序的元素集合。本文将带你深入了解 List 接口的基本用法、常见实现类及其扩展,同时通过实际代码示例帮助你快速掌握这些知识。 👉点击获取2024Java学习资料 1. 什么是 List? List 是 Java 集合框架中的一个接口,它继承了 Collection 接口,用于存储一…

    未分类 2025 年 1 月 1 日
    43300
  • Python数据结构与算法分析 第3版PDF、EPUB免费下载

    适读人群 :1. 希望学习数据结构和算法的Python用户; 2. 计算机专业的学生和老师。 只有洞彻数据结构与算法,才能真正精通Python!热门计算机科学教材,华盛顿大学、北京大学等多家高校采用,让你在代码编写的战场上所向披靡! 电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍 点击原文去下载 书籍信息 作者: [美] 布拉德利·…

    2025 年 1 月 7 日
    84500
  • Python深度学习(第2版)PDF免费下载

    适读人群 :想要学习深度学习的学生、职业开发者。 流行深度学习框架Keras之父执笔,涵盖Transformer架构等进展,文字生,简单方式解释复杂概念,不用一个数学公式,利用直觉自然入门深度学习。 电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍 点击原文去下载 书籍信息 作者: [美] 弗朗索瓦·肖莱出版社: 人民邮电出版社出品方…

    2024 年 12 月 30 日
    49700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信