记得之前刚开始学习Java,按部就班去阅读《Java核心技术》这本书的时候,总是听别人提起,java swing那一章不用看了。然后直到对着控制台编程了半年,回来捡起了Swing图形界面,跟着网上搞了坦克大战的游戏,总觉得外观有些过时,并且与现代化的用户界面相比可能缺乏吸引力。随着 JavaFX 的兴起和发展,一些Java开发人员开始转向使用 JavaFX 来构建 GUI 应用程序。JavaFX提供了现代化的 GUI 开发体验、灵活的界面布局和样式定义、跨平台性以及与其他 Java 技术的良好集成,这也是我后来又去学习JavaFX的原因。
什么是JavaFX
JavaFX 是 Java 编程语言的一个跨平台图形用户界面(GUI)框架,用于创建丰富、交互式和现代化的用户界面应用程序。它提供了丰富的功能和工具,使开发人员能够构建具有吸引力和高度可定制的用户界面。JavaFX 提供了一种现代化的方法来设计和开发 GUI 应用程序,支持诸如动画、多媒体、3D 渲染等现代 GUI 元素,同时保持了 Java 平台的跨平台性。
JavaFX的优势:
-
现代化的 GUI 开发:JavaFX 提供了丰富的功能,使得开发人员可以创建具有现代化外观和交互体验的用户界面。它支持动画、过渡效果、多媒体和3D 渲染等特性,使得应用程序能够提供更加吸引人的用户体验。
-
跨平台性:JavaFX 应用程序可以在多个平台上运行,包括 Windows、Mac 和 Linux。这意味着开发人员可以编写一次代码,并在多个平台上部署应用程序,减少了开发和维护的成本。
-
CSS 样式:JavaFX 支持使用 CSS 来定义 GUI 元素的样式和外观,使得界面的设计更加灵活。开发人员可以使用 CSS 对界面进行样式化和主题化,从而实现更好的视觉效果。
-
FXML 布局:JavaFX 提供了 FXML,一种用于声明式地描述界面布局的 XML 格式。使用 FXML 可以将界面的布局与业务逻辑分离,使得代码更易于维护和理解。
-
集成性:JavaFX 是 Java 标准库的一部分,与其他 Java 技术(如 Java EE、Spring 等)集成得非常好。这意味着开发人员可以方便地在 JavaFX 应用程序中使用 Java 的强大功能和第三方库。
-
未来发展潜力:尽管 JavaFX 相对较新,但它正在迅速发展,并且由于其现代化的特性和跨平台的能力,被广泛认为是 Java GUI 开发的未来趋势之一。
如何准备学习JavaFX
网上的教程和学习指南很容易找到,我就不在这里班门弄斧。这里仅仅讲一下JDK8之后如何在IDEA中运行Javafx。
其实在IDEA中,创建项目时会有一个选项,通过该选项会直接创建一个hello world的demo,可以直接运行。
但是我这里仅仅向大家介绍如何从一个空项目中构建JavaFX的程序。
新建空项目
这里随便取个名字。
贴上代码
简单点,直接在src下面新建一个class。 就叫Main.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 {@Overridepublic 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相关的包。
到这里下载 https://openjfx.io/
我的路径是
引入相关包
之后确定导入,红色消失让我们再次运行。
修改JVM配置
不出意外地出了意外,错误原因
有了问题咱们就解决,打开
编辑虚拟机参数
--module-path=你的javafx包的路径\lib
--add-modules=javafx.base,javafx.controls,javafx.fxml,javafx.graphics
ok,运行
大功告成
总结
自此可以快乐地写UI了,再也不是面向黑漆漆的console编程。