面向控制台编程?来试试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编程。

相关推荐
2401_882727576 小时前
低代码配置式组态软件-BY组态
前端·后端·物联网·低代码·前端框架
追逐时光者7 小时前
.NET 在 Visual Studio 中的高效编程技巧集
后端·.net·visual studio
大梦百万秋8 小时前
Spring Boot实战:构建一个简单的RESTful API
spring boot·后端·restful
斌斌_____8 小时前
Spring Boot 配置文件的加载顺序
java·spring boot·后端
路在脚下@8 小时前
Spring如何处理循环依赖
java·后端·spring
海绵波波1079 小时前
flask后端开发(1):第一个Flask项目
后端·python·flask
小奏技术10 小时前
RocketMQ结合源码告诉你消息量大为啥不需要手动压缩消息
后端·消息队列
AI人H哥会Java12 小时前
【Spring】控制反转(IoC)与依赖注入(DI)—IoC容器在系统中的位置
java·开发语言·spring boot·后端·spring
凡人的AI工具箱12 小时前
每天40分玩转Django:Django表单集
开发语言·数据库·后端·python·缓存·django
奔跑草-12 小时前
【数据库】SQL应该如何针对数据倾斜问题进行优化
数据库·后端·sql·ubuntu