【问题标题】:Why is main method used in JavaFX Application when start() already exist当 start() 已经存在时,为什么在 JavaFX 应用程序中使用 main 方法
【发布时间】:2014-06-11 10:45:39
【问题描述】:

JavaFX 应用程序的起点是 start 方法。但是在示例 JavaFX 应用程序中,还包含一个 main 方法。在这种特殊情况下,main 方法的用途是什么,为什么需要将 start() 定义为 JavaFX 的起点。难道我们不能简单地使用 main 方法来定义一个像 Swings 这样的起点吗?

一个示例 HelloWorld 应用程序:

public class HelloWorld extends Application {

    @Override
    public void start(Stage primaryStage) {
        Button btn = new Button("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);
    }
}

【问题讨论】:

  • 嗯。 @SuvarnaPattayil 接受的答案完美地解决了 OP 问题的第一部分。我也对问题的第二部分感兴趣——为什么需要将 start() 定义为 JavaFX 的起点。难道我们不能简单地使用 main 方法来定义一个像 Swings 这样的起点吗?

标签: java


【解决方案1】:

来自Oracle Docs

当 JAR 时,JavaFX 应用程序不需要 main() 方法 应用程序的文件是使用 JavaFX Packager 工具创建的, 它将 JavaFX 启动器嵌入到 JAR 文件中。然而,它是 包含 main() 方法很有用,这样您就可以运行 JAR 文件 在没有 JavaFX 启动器的情况下创建,例如在使用 IDE 时 JavaFX 工具未完全集成。还有,摇 嵌入 JavaFX 代码的应用程序需要 main() 方法。

【讨论】:

    猜你喜欢
    • 2019-03-31
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 2018-08-23
    • 2019-01-13
    • 2011-11-18
    相关资源
    最近更新 更多