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

时间:2016-06-29 01:10:31

标签: 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实例和默认构造函数从Main类启动Javafx Application。 我怎么能这样做?

2 个答案:

答案 0 :(得分:5)

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

GUI默认构造函数将由Application.launch方法调用,您不需要(也不能)将您的实例传递给应用程序启动器。如果您真的想通过其他课程中的main方法拨打电话,可以直接使用Application.launch(Gui.class, args)

答案 1 :(得分:-2)

像这样:

lines