您的第一个 JavaFX 应用程序

内容

在本教程中,我将向您展示如何创建您的第一个 JavaFX 应用程序。因此,本教程既可以让您了解核心 JavaFX 概念,也可以为您提供一些可以用作自己实验模板的 JavaFX 代码。

JavaFX 应用程序类

一个 JavaFX 应用程序需要一个主要的启动类。这个类必须扩展 javafx.application.Application 类,这是自 Java 8 起在 Java 中的标准类。

这里是 Application 的一个示例子类:

package com.jenkov.javafx.helloworld;

导入 javafx.application.Application;

public class MyFxApp extends Application {

}

实现 start()

所有JavaFX Application类的子类必须实现Application类的抽象start()方法(或者是Application本身的抽象子类)。

start() 方法在 JavaFX 应用程序启动时被调用。这里是上面的例子,但实现了 start() 方法:

package com.jenkov.javafx.helloworld; import javafx.application.Application; import javafx.stage.Stage; public class MyFxApp extends Application { @Override public void start(Stage primaryStage) throws Exception { primaryStage.setTitle("我的第一个JavaFX应用"); primaryStage.show(); }

}

start() 方法接受一个类型为 Stage 的单一参数。舞台是所有 JavaFX 应用程序的视觉部分显示的地方。Stage 对象由 JavaFX 运行时为您创建。

上面的示例在舞台对象上设置了一个标题,然后调用 show()。这将使 JavaFX 应用程序在一个窗口中可见,窗口顶部的标题将可见。

如果您没有在舞台对象上调用 show(),则没有任何内容可见。没有窗口被打开。如果您的 JavaFX 应用程序在启动时没有变得可见,请检查您是否记得在 start() 内部调用 Stageshow() 方法。

添加一个 main() 方法

实际上,您可以在没有 main() 方法的情况下启动 JavaFX 应用程序。但是,如果您想将命令行参数传递给应用程序,则需要添加 main() 方法。一般来说,我更喜欢添加 main() 方法,因为这使得启动应用程序的代码更加明确。

这里是上面的例子,添加了一个 main() 方法:

package com.jenkov.javafx.helloworld; import javafx.application.Application; import javafx.stage.Stage; public class MyFxApp extends Application { @Override public void start(Stage primaryStage) throws Exception { primaryStage.setTitle("我的第一个JavaFX应用"); primaryStage.show(); } public static void main(String[] args) { Application.launch(args); }

}

正如你所看到的,main() 方法使用命令行参数调用静态的 launch() 方法。launch() 方法是位于 Application 类中的静态方法。此方法启动 JavaFX 运行时和你的 JavaFX 应用程序。

launch() 方法将检测它是从哪个类调用的,因此您不必明确告诉它要启动哪个类。

总结
本文介绍了如何创建第一个JavaFX应用程序。首先,JavaFX应用程序需要一个主启动类,该类必须扩展`javafx.application.Application`类。所有子类必须实现抽象的`start()`方法,该方法在应用程序启动时被调用。在`start()`方法中,可以设置窗口标题并调用`show()`方法使窗口可见。虽然可以不添加`main()`方法启动JavaFX应用,但如果需要传递命令行参数,建议添加`main()`方法。接着,文章讲解了如何向`Stage`对象添加`Scene`,以便在窗口中显示内容。通过创建`Label`对象并将其添加到`Scene`中,可以在窗口中显示文本。最后,提供了示例代码和窗口效果的截图,帮助读者更好地理解JavaFX应用程序的基本结构和功能。