JavaFX 风格 Hello World

    技术2025-10-24  16

    学习JavaFX的最好方式就是建一个 ”Hello World” 应用程序。

     

    官方教程的开发工具是NetBeans,本文采用Eclipse。假设你已经会使用Gradle,电脑安装好了Eclipse及JDK14,也知道如何使用IDE来创建应用程序。需要注意的是,JDK从9开始,JavaFX便分离出去成为一个独立的项目,新的项目链接地址为:https://openjfx.io/ 。如果不想使用Gradle的话,可以单独下载JavaFX的开发包,也可以使用Eclipse创建一个Java项目,具体可参考:https://openjfx.io/openjfx-docs/#install-javafx 。

     

    为了减少使用工具的学习成本,完全可以命令行编译运行,比如用Visual studio code作为编辑器,直接使用javac编译程序。

    编译命令:

    javac -cp ..\build --module-path E:\openjdk\javafx-sdk-14.0.1\lib --add-modules javafx.controls helloworld\Main.java

    运行命令:

    java -cp ..\build --module-path E:\openjdk\javafx-sdk-14.0.1\lib --add-modules javafx.controls helloworld.Main

    构建应用程序

    Hello World的代码如下:

    package helloworld; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class HelloWorld extends Application { @Override public void start(Stage primaryStage) { Button btn = new Button(); btn.setText("Say 'Hello World'"); btn.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { System.out.println("Hello World!"); } }); StackPane root = new StackPane(); root.getChildren().add(btn); Scene scene = new Scene(root, 300, 250); primaryStage.setTitle("Hello World!"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }

    下面来说重点:

    主类继承 javafx.application.Application class。start() 方法是主要入口。舞台(stage )和场景(scene)是用户界面的容器。 Scene 类是所有内容的容器。上述示例代码中创建了舞台和场景,并使指定像素大小的场景得以呈现。JavaFX中,内容表现为层次化的图形节点。这个示例中根节点是一个StackPane 对象,这个对象是个尺寸可变的布局节点。这就意味着当用户改变舞台大小的时候,根节点也跟着变化,因为根节点追踪场景节点的。根节点有一个子节点,是一个带有文字的按钮,加了一个事件处理,当按钮按下去的时候打印一条消息。main()方法在用javaFX打包工具打包的时候不是必须的, 因为JAR包中嵌入了启动器。不过为调试方便,还是需要写个main()的。

    Figure 3-1 展示Hello world的场景图,更多有关场景图的内容查看 Working with the JavaFX Scene Graph.

    Figure 3-1 Hello World 场景图

     

     

    运行应用程序

    运行效果如下:

    Figure 3-2 Hello World, JavaFX style

     

     

    接下来去哪

     

    Creating a Form in JavaFX 教授基本的布局,如何往布局里加控件,如何创建输入事件。Fancy Forms with JavaFX CSS provides simple style tricks for enhancing your application, including adding a background image and styling buttons and text.Using FXML to Create a User Interface 用户登录界面的创建替换方式。 FXML是基于 XML的语言,提供构建用户界面的结构,实现界面代码分离。Animation and Visual Effects in JavaFX 展开如何添加时间线动画和混合效果将程序弄活了。

     

    Processed: 0.010, SQL: 9