朝鲜世界杯_2019篮球世界杯 - dyldrk.com

Java GUI 编程完全指南:从 Swing 到 JavaFX 图形界面实战开发

一、引言:为什么要学 GUI 编程?图形用户界面(GUI)是用户与程序交互的重要方式。虽然 Web 应用流行,但 Java GUI 依然广泛应用于:

桌面管理系统(ERP、库存管理)

教学/考试软件

小工具、可视化平台

网络通信客户端(如 IM 聊天室)

Java 提供了两大 GUI 技术:

Swing:轻量级,JDK 自带

JavaFX:现代化、支持 CSS、动画与多媒体

二、GUI 编程体系架构图代码语言:javascript代码运行次数:0运行复制lua复制编辑 +-----------------------------+

| Java GUI API |

+-----------------------------+

/ \

+------+ +------+

| Swing| |JavaFX|

+------+ +------+

| |

+----------------+ +-----------------+

| JFrame、JPanel | | Stage、Scene |

| JButton、JLabel| | Button、Label |

+----------------+ +-----------------+三、Swing 入门:第一个窗口程序3.1 创建基本窗口代码语言:javascript代码运行次数:0运行复制java复制编辑import javax.swing.*;

public class HelloSwing {

public static void main(String[] args) {

JFrame frame = new JFrame("第一个 Swing 程序");

frame.setSize(400, 300);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JLabel label = new JLabel("你好,Swing!", SwingConstants.CENTER);

frame.add(label);

frame.setVisible(true);

}

}3.2 图示代码语言:javascript代码运行次数:0运行复制diff复制编辑+---------------------------+

| 第一个 Swing 程序 |

| |

| 你好,Swing! |

| |

+---------------------------+四、Swing 常用组件汇总表组件

说明

JFrame

窗口容器

JPanel

面板容器,用于布局

JButton

按钮

JLabel

文本标签

JTextField

文本输入框

JTextArea

多行文本输入

JCheckBox

多选框

JRadioButton

单选按钮

JComboBox

下拉框

JTable

表格

五、Swing 布局管理器实战5.1 BorderLayout 示例代码语言:javascript代码运行次数:0运行复制java复制编辑frame.setLayout(new BorderLayout());

frame.add(new JButton("北"), BorderLayout.NORTH);

frame.add(new JButton("南"), BorderLayout.SOUTH);

frame.add(new JButton("东"), BorderLayout.EAST);

frame.add(new JButton("西"), BorderLayout.WEST);

frame.add(new JButton("中"), BorderLayout.CENTER);图示代码语言:javascript代码运行次数:0运行复制diff复制编辑+---------------------------+

| 北 |

| 西 中 东 |

| 南 |

+---------------------------+5.2 GridLayout 示例代码语言:javascript代码运行次数:0运行复制java复制编辑frame.setLayout(new GridLayout(2, 3));

for (int i = 1; i <= 6; i++) {

frame.add(new JButton("按钮 " + i));

}六、Swing 事件监听机制详解事件响应是 GUI 编程的核心。

6.1 按钮点击事件代码语言:javascript代码运行次数:0运行复制java复制编辑JButton button = new JButton("点击我");

button.addActionListener(e -> {

JOptionPane.showMessageDialog(null, "按钮被点击!");

});6.2 图示事件流程图代码语言:javascript代码运行次数:0运行复制css复制编辑[按钮点击] → 触发 ActionEvent → 被监听器捕获 → 执行响应方法七、完整 Swing 表单实例:登录界面7.1 代码结构简述 文本框输入用户名密码

点击按钮验证是否正确

弹出提示框

7.2 示例代码代码语言:javascript代码运行次数:0运行复制java复制编辑JTextField userField = new JTextField(15);

JPasswordField passField = new JPasswordField(15);

JButton loginBtn = new JButton("登录");

loginBtn.addActionListener(e -> {

String user = userField.getText();

String pass = new String(passField.getPassword());

if (user.equals("admin") && pass.equals("1234")) {

JOptionPane.showMessageDialog(null, "登录成功!");

} else {

JOptionPane.showMessageDialog(null, "用户名或密码错误!");

}

});八、JavaFX 初探:界面现代化选择8.1 JavaFX Hello World代码语言:javascript代码运行次数:0运行复制java复制编辑import javafx.application.Application;

import javafx.scene.Scene;

import javafx.scene.control.Label;

import javafx.stage.Stage;

public class HelloFX extends Application {

public void start(Stage stage) {

Label label = new Label("你好,JavaFX!");

Scene scene = new Scene(label, 300, 200);

stage.setScene(scene);

stage.setTitle("JavaFX 示例");

stage.show();

}

}九、JavaFX 与 Swing 对比图特性

Swing

JavaFX

API 年代

1998

2012 起,持续更新

风格

老旧风格

更现代(支持 CSS)

动画/多媒体

较弱

原生支持

开发体验

原生 API

可结合 FXML 和 SceneBuilder

十、JavaFX UI 设计图(SceneBuilder 示例)代码语言:javascript代码运行次数:0运行复制markdown复制编辑+--------------------------+

| 登录界面 |

|--------------------------|

| 用户名: [___________] |

| 密码 : [___________] |

| |

| [ 登录 ] [ 取消 ] |

+--------------------------+十一、JavaFX 控件展示表控件

Java 类名

Label

javafx.scene.control.Label

Button

Button

TextField

TextField

PasswordField

PasswordField

CheckBox

CheckBox

RadioButton

RadioButton

TableView

TableView

ComboBox

ComboBox

十二、FXML + SceneBuilder 简化开发FXML 是 JavaFX 的界面描述语言,像 HTML 一样定义布局。

代码语言:javascript代码运行次数:0运行复制xml复制编辑