相关疑难解决方法(0)

Application和Controller类之间的JavaFX FXML通信

我试图通过我的FXML应用程序中的ProcessBuilder创建并销毁我创建的外部进程,但它无效.这是基于Sergey Grinev给我的有用建议.

我尝试使用/不使用"// myController.setApp(this);"运行 并使用"// super.stop();" 在子类的顶部和底部(请参阅MyApp中该行的注释/输入),但没有组合可行.

这可能与FXML或JavaFX无关,但我认为这是在JavaFX上开发应用程序的常见模式.我想我要求一个Java最佳实践来关闭基于UI的应用程序中的依赖进程(如本例所示:基于FXML/JavaFX),其中有一个控制器类和一个应用程序类.

你能解释一下我做错了什么吗?或者更好:建议我该做什么呢?谢谢.

在我的应用程序中我这样做:

public class MyApp extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        FXMLLoader fxmlLoader = new FXMLLoader();
        Scene scene = (Scene)FXMLLoader.load(getClass().getResource("MyApp.fxml"));
        MyAppController myController = (MyAppController)fxmlLoader.getController();

        primaryStage.setScene(scene);
        primaryStage.show();

//        myController.setApp(this);
    }

    @Override
    public void stop() throws Exception {
//      super.stop();

      // this is called on fx app close, you may call it in an action handler too
      if (MyAppController.getScriptProcess() != null) {
        MyAppController.getScriptProcess().destroy();
      }
      super.stop(); …
Run Code Online (Sandbox Code Playgroud)

processbuilder javafx-2 fxml

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

fxml ×1

javafx-2 ×1

processbuilder ×1