如何使用默认构造函数从另一个 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);
}
}
我有一个主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);
}
}