当前位置: 首页 > news >正文

Java GUI开发全攻略:Swing、JavaFX与AWT

Swing 界面开发

Swing 是 Java 中用于创建图形用户界面(GUI)的库。它提供了丰富的组件,如按钮、文本框、标签等。

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class SwingExample {public static void main(String[] args) {// 创建 JFrame 窗口JFrame frame = new JFrame("Swing Example");frame.setSize(300, 200);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 创建 JPanel 面板JPanel panel = new JPanel();frame.add(panel);// 创建 JLabel 标签JLabel label = new JLabel("Enter your name:");panel.add(label);// 创建 JTextField 文本框JTextField textField = new JTextField(20);panel.add(textField);// 创建 JButton 按钮JButton button = new JButton("Submit");panel.add(button);// 添加按钮点击事件button.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {String name = textField.getText();JOptionPane.showMessageDialog(frame, "Hello, " + name);}});// 显示窗口frame.setVisible(true);}
}

JavaFX 界面开发

JavaFX 是 Java 的另一个 GUI 框架,提供了更现代化的界面设计和丰富的功能。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;public class JavaFXExample extends Application {@Overridepublic void start(Stage primaryStage) {// 创建 VBox 布局VBox vbox = new VBox(10);// 创建 Label 标签Label label = new Label("Enter your name:");vbox.getChildren().add(label);// 创建 TextField 文本框TextField textField = new TextField();vbox.getChildren().add(textField);// 创建 Button 按钮Button button = new Button("Submit");vbox.getChildren().add(button);// 添加按钮点击事件button.setOnAction(event -> {String name = textField.getText();System.out.println("Hello, " + name);});// 创建 Scene 场景Scene scene = new Scene(vbox, 300, 200);// 设置 Stage 标题和场景primaryStage.setTitle("JavaFX Example");primaryStage.setScene(scene);// 显示窗口primaryStage.show();}public static void main(String[] args) {launch(args);}
}

AWT 界面开发

AWT(Abstract Window Toolkit)是 Java 最早的 GUI 工具包,虽然现在较少使用,但在某些场景下仍然有用。

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class AWTExample {public static void main(String[] args) {// 创建 Frame 窗口Frame frame = new Frame("AWT Example");frame.setSize(300, 200);// 创建 Panel 面板Panel panel = new Panel();frame.add(panel);// 创建 Label 标签Label label = new Label("Enter your name:");panel.add(label);// 创建 TextField 文本框TextField textField = new TextField(20);panel.add(textField);// 创建 Button 按钮Button button = new Button("Submit");panel.add(button);// 添加按钮点击事件button.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {String name = textField.getText();System.out.println("Hello, " + name);}});// 显示窗口frame.setVisible(true);}
}

Web 前端与 Java 后端交互

Java 后端可以通过 Servlet 或 Spring Boot 与前端进行交互,前端通常使用 HTML、CSS 和 JavaScript。

// Spring Boot 控制器示例
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;@RestController
public class WebController {@GetMapping("/greet")public String greet(@RequestParam String name) {return "Hello, " + name;}
}

<!-- HTML 前端示例 -->
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Greeting Page</title>
</head>
<body><h1>Enter your name:</h1><input type="text" id="nameInput"><button onclick="greet()">Submit</button><p id="greeting"></p><script>function greet() {const name = document.getElementById('nameInput').value;fetch(`/greet?name=${name}`).then(response => response.text()).then(text => document.getElementById('greeting').innerText = text);}</script>
</body>
</html>

使用 Thymeleaf 进行模板渲染

Thymeleaf 是一个用于 Java 的模板引擎,常用于 Spring Boot 项目中渲染 HTML 页面。

// Spring Boot 控制器
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;@Controller
public class ThymeleafExample {@GetMapping("/greet")public String greet(@RequestParam String name, Model model) {model.addAttribute("name", name);return "greet";}
}

<!-- Thymeleaf 模板 greet.html -->
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>Greet</title>
</head>
<body><h1>Hello, <span th:text="${name}"></span></h1>
</body>
</html>

使用 JSP 进行页面渲染

JSP(JavaServer Pages)是一种用于创建动态网页的技术,允许在 HTML 中嵌入 Java 代码。

// Servlet 示例
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@WebServlet("/greet")
public class JSPExample extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String name = request.getParameter("name");request.setAttribute("name", name);request.getRequestDispatcher("/greet.jsp").forward(request, response);}
}

<!-- JSP 页面 greet.jsp -->
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>Greet</title>
</head>
<body><h1>Hello, <%= request.getAttribute("name") %></h1>
</body>
</html>

总结

Java 提供了多种前端界面开发方式,Swing 和 JavaFX 适用于桌面应用程序,AWT 是早期的 GUI 工具包,而 Web 前端与 Java 后端的交互则适用于 Web 应用程序。每种方式都有其特定的使用场景和优势,开发者可以根据需求选择合适的工具。

相关文章:

  • 深入理解SpringBoot中的SpringCache缓存技术
  • 2025年PMP 学习十二 第9章 项目资源管理
  • iOS 阅后即焚功能的实现
  • “海外滴滴”Uber的Arm迁移实录:重构大规模基础设施​
  • 前端实践:打造高度可定制的Vue3时间线组件——图标、节点与连接线的个性化配置
  • Keil5 MDK 安装教程
  • 医学影像系统的集成与工作流优化
  • 数据结构中的高级排序算法
  • 【C++设计模式之Decorator装饰模式】
  • PPO算法:一种先进的强化学习策略
  • WeakAuras Lua Script ICC (BarneyICC)
  • Python中列表(list)知识详解(2)和注意事项以及应用示例
  • lua 作为嵌入式设备的配置语言
  • java加强 -stream流
  • spark数据压缩
  • Spark之搭建Yarn模式
  • 一文了解 HTTP Content-Type:从基础到实战
  • 魔改离线VLLM
  • Adobe DC 2025安装教程
  • Android usb网络共享详解
  • 塑料机械怎么做网站/指数搜索
  • 企业为什么要建立自己的网站/最新热搜新闻
  • ps网站导航制作/快速排名seo软件
  • 如何用jsp做简单的网站/seo招聘职责
  • 汝南专业网站建设/google搜索下载
  • thinkphp做网站有什么好处/百度客服24小时人工服务