如何使用默认构造函数从另一个 class 启动 javafx 应用程序?

how to launch javafx application from another class with default constructor?

我有一个主class

public class Main{
    public static void main(String[] args) {
        Gui gui = new Gui();
    }
}

那我还有一个class贵

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.FlowPane;
import javafx.stage.Stage;

public class Gui extends Application{
    public Gui() {
        Application.launch();
    }
    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle("");
        FlowPane flowLayout= new FlowPane();
        Scene scene = new Scene(flowLayout,200,200);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

我想通过创建一个 Gui 实例并使用默认构造函数从 Main class 启动 Javafx 应用程序。 我该怎么做?

不要将 launch 方法调用放在构造函数中;这是一个阻塞方法调用,在应用程序退出之前不会 return。

GUI 默认构造函数将由 Application.launch 方法调用,您不需要(也不能)将您的实例传递给应用程序启动器。如果你真的想从另一个class中的main方法调用,你可以直接使用Application.launch(Gui.class, args)

像这样:

public class Main{
    public static void main(String[] args) {
        Gui gui = new Gui();
        gui.main(args);
    }
}