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

标签 java javafx java-8 java-threads

我有一个主类

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

那我还有一个类Gui

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 实例并使用默认构造函数从主类启动 Javafx 应用程序。 我该怎么做?

最佳答案

不要将 launch 方法调用放在构造函数中;这是一个阻塞方法调用,直到应用程序退出才会返回。

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

关于java - 如何使用默认构造函数从另一个类启动 javafx 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38088710/

相关文章:

java - 显式使用 LambdaMetafactory

java - 在 Pane 或区域内使用备用坐标系

java - 在java中验证对象的最佳方法

Java 8 : grouping a collection by a field and flatten and join a collection as mapped value using stream?

java - 混淆 Java 泛型错误与 Map 和 Collector

java - Ctrl-M 的正则表达式问题

java - 我应该如何运行服务器/客户端代码?

JavaFX 未包含在 OpenJDK8 中?

java - 为什么我的弹出窗口与 ListView 发生冲突?

JavaFx Web 无法与带有 JRE7 的 Internet Explorer 11 一起使用