面向控制台编程?来试试Java的GUI开发

记得之前刚开始学习Java,按部就班去阅读《Java核心技术》这本书的时候,总是听别人提起,java swing那一章不用看了。然后直到对着控制台编程了半年,回来捡起了Swing图形界面,跟着网上搞了坦克大战的游戏,总觉得外观有些过时,并且与现代化的用户界面相比可能缺乏吸引力。随着 JavaFX 的兴起和发展,一些Java开发人员开始转向使用 JavaFX 来构建 GUI 应用程序。JavaFX提供了现代化的 GUI 开发体验、灵活的界面布局和样式定义、跨平台性以及与其他 Java 技术的良好集成,这也是我后来又去学习JavaFX的原因。

什么是JavaFX

JavaFX 是 Java 编程语言的一个跨平台图形用户界面(GUI)框架,用于创建丰富、交互式和现代化的用户界面应用程序。它提供了丰富的功能和工具,使开发人员能够构建具有吸引力和高度可定制的用户界面。JavaFX 提供了一种现代化的方法来设计和开发 GUI 应用程序,支持诸如动画、多媒体、3D 渲染等现代 GUI 元素,同时保持了 Java 平台的跨平台性。

JavaFX的优势:

  1. 现代化的 GUI 开发:JavaFX 提供了丰富的功能,使得开发人员可以创建具有现代化外观和交互体验的用户界面。它支持动画、过渡效果、多媒体和3D 渲染等特性,使得应用程序能够提供更加吸引人的用户体验。

  2. 跨平台性:JavaFX 应用程序可以在多个平台上运行,包括 Windows、Mac 和 Linux。这意味着开发人员可以编写一次代码,并在多个平台上部署应用程序,减少了开发和维护的成本。

  3. CSS 样式:JavaFX 支持使用 CSS 来定义 GUI 元素的样式和外观,使得界面的设计更加灵活。开发人员可以使用 CSS 对界面进行样式化和主题化,从而实现更好的视觉效果。

  4. FXML 布局:JavaFX 提供了 FXML,一种用于声明式地描述界面布局的 XML 格式。使用 FXML 可以将界面的布局与业务逻辑分离,使得代码更易于维护和理解。

  5. 集成性:JavaFX 是 Java 标准库的一部分,与其他 Java 技术(如 Java EE、Spring 等)集成得非常好。这意味着开发人员可以方便地在 JavaFX 应用程序中使用 Java 的强大功能和第三方库。

  6. 未来发展潜力:尽管 JavaFX 相对较新,但它正在迅速发展,并且由于其现代化的特性和跨平台的能力,被广泛认为是 Java GUI 开发的未来趋势之一。

如何准备学习JavaFX

网上的教程和学习指南很容易找到,我就不在这里班门弄斧。这里仅仅讲一下JDK8之后如何在IDEA中运行Javafx。

其实在IDEA中,创建项目时会有一个选项,通过该选项会直接创建一个hello world的demo,可以直接运行。

但是我这里仅仅向大家介绍如何从一个空项目中构建JavaFX的程序。

新建空项目

这里随便取个名字。

贴上代码

简单点,直接在src下面新建一个class。 就叫Main.java。贴上代码。

java 复制代码
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) {
        // 创建一个标签
        Label helloLabel = new Label("Hello World!");

        // 创建一个堆栈面板并将标签添加到其中
        StackPane root = new StackPane();
        root.getChildren().add(helloLabel);

        // 创建一个场景并将堆栈面板添加到场景中
        Scene scene = new Scene(root, 300, 200);

        // 设置舞台(窗口)的标题和场景
        primaryStage.setTitle("Hello World Example");
        primaryStage.setScene(scene);

        // 显示舞台(窗口)
        primaryStage.show();
    }

    public static void main(String[] args) {
        // 启动 JavaFX 应用程序
        launch(args);
    }
}

修复

不出意外,应该是一片红,因为我们需要手动的引入JavaFx相关的包。 到这里下载 openjfx.io/

我的路径是

引入相关包

之后确定导入,红色消失让我们再次运行。

修改JVM配置

不出意外地出了意外,错误原因

有了问题咱们就解决,打开

编辑虚拟机参数

ini 复制代码
--module-path=你的javafx包的路径\lib
--add-modules=javafx.base,javafx.controls,javafx.fxml,javafx.graphics

ok,运行

大功告成

总结

自此可以快乐地写UI了,再也不是面向黑漆漆的console编程。

相关推荐
SimonKing7 分钟前
手搓MCP客户端动态调用多MCP服务,调用哪个你说了算!
java·后端·程序员
写bug写bug23 分钟前
分布式锁的使用场景和常见实现(上)
分布式·后端·面试
Ali酱31 分钟前
2周斩获远程offer!我的高效求职秘诀全公开
前端·后端·面试
小乌龟不会飞2 小时前
【SpringBoot】统一功能处理
java·spring boot·后端
刘小吉2 小时前
java net 配置局域网受信任的https
后端
考虑考虑2 小时前
JPA中的EntityGraph
spring boot·后端·spring
coolflyr_reg2 小时前
禅道集成Firebase PHP-JWT
后端
似水流年流不尽思念2 小时前
常见的排序算法有哪些?它们的平均时间复杂度是多少?
后端·算法
孟永峰_Java3 小时前
MySQL 组合IN查询:你的索引为什么罢工了?
后端
ruokkk3 小时前
一个困扰我多年的Session超时Bug,被我的新AI搭档半天搞定了
javascript·后端·架构