有没有人知道如何通过休息请求打开JavaFx应用程序?
方案: 我有一个Spring Boot Service,可以在每台机器上运行,通过我的SPA(单页应用程序)和我的通讯端口建立一个桥接器。那是因为SPA无法与操作系统通信。
此通讯是通过http请求进行的。
现在我有一个问题,我需要创建一个通过http请求启动的javafx应用程序,当我调用第一次时,它工作正常,但如果我关闭javafx应用程序点击'x'并尝试打开我再次收到以下错误:
@RestController
@RequestMapping("v1/appfx")
public class AppfxController{
@RequestMapping("")
private void openJavaFxApp(){
try{
MyJavaFxApp.launch(MyJavaFxApp.class);
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
有一种方法,当我关闭javafx窗口时,它会杀死JavaFx线程,所以当我再次调用它时,它会启动一个新线程? 或者我是否需要保留Thread并找到一种方法在同一个Thread中重新打开我的javafx应用程序?
这是我的@Controller
public class MyJavaFxApp extends Application {
private final static Logger log = LoggerFactory.getLogger(MyJavaFxApp.class);
private BigDecimal left;
private String selectedOperator;
private boolean numberInputting;
@FXML
private TextField display;
public MyJavaFxApp() {
this.left = BigDecimal.ZERO;
this.selectedOperator = "";
this.numberInputting = false;
}
@Override
public void start(Stage stage) throws Exception {
stage.setTitle("MyJavaFxApp");
stage.setOnCloseRequest(x -> {
log.info("closed");
Platform.exit();
});
stage.setResizable(false);
stage.setScene(new Scene(FXMLLoader.load(getClass().getClassLoader().getResource("Test.fxml"))));
stage.show();
stage.toFront();
}
}
这是我的JavaFx:
{{1}}
感谢您的帮助。