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

相关推荐

  • MySql 9 in Docker 主从切换

    继上一篇《MySql 9 in Docker 利用克隆插件搭建主从》我们说了主从复制后, 那么我们接下来说说如何手动的进行主从切换。 动手~ 1. 原主库设置 切断应用对主库的访问 主库设置为只读状态 set global read_only=ON;set global super_read_only=ON; 主库执行 SELECT @@gtid_execu…

    未分类 2024 年 12 月 24 日
    91200
  • Claude Pro充值支付宝微信指南国内用户

    Claude Pro充值支付宝微信指南国内用户,适合国内用户使用微信支付宝为自己的账号完成 Claude Pro 充值、订阅或代充开通。

    未分类 2026 年 8 月 15 日
    6500
  • Claude Pro代充订单怎么验收

    Claude Pro代充订单怎么验收,围绕国内支付、代充开通、续费到账和账号验收整理。

    未分类 2026 年 5 月 29 日
    17400
  • Grok Super长期使用订阅完整教程

    国内用户开通 Grok Super 的充值教程,整理 Grok 充值、代充、国内支付、账号 ID 获取和确认充值步骤。

    未分类 2026 年 6 月 18 日
    15300
  • ChatGPT Plus充值国内支付教程自己账号

    国内用户想开通 ChatGPT Plus,常见阻碍不是注册,而是订阅付款。临时项目需要尽快开通会员,会让原本简单的升级变得绕。对于主要用 ChatGPT 来做会议纪要的创业者,更稳的做法是按月观察实际使用频率;如果晚上临时要交稿,同时想避开临时换号带来的麻烦,可以优先把会员开到自己的原账号里。

    未分类 2026 年 8 月 15 日
    5800

发表回复

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

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信