相关疑难解决方法(0)

JavaFX:如何在初始化期间从控制器获取阶段?

我想从我的控制器类处理阶段事件(即隐藏).所以我要做的就是通过添加一个监听器

((Stage)myPane.getScene().getWindow()).setOn*whatIwant*(...);
Run Code Online (Sandbox Code Playgroud)

但问题是初始化刚刚开始

Parent root = FXMLLoader.load(getClass().getResource("MyGui.fxml"));
Run Code Online (Sandbox Code Playgroud)

之前

Scene scene = new Scene(root);
stage.setScene(scene);
Run Code Online (Sandbox Code Playgroud)

因此.getScene()返回null.

我自己找到的唯一解决方法是向myPane.sceneProperty()添加一个监听器,当它变为非null时,我得到场景,添加到它的.windowProperty()我的!该死!我最终检索阶段的监听器处理.这一切都以设置所需的听众来举办舞台活动而告终.我认为听众太多了.这是解决我问题的唯一方法吗?

javafx initialization stage javafx-2 javafx-8

83
推荐指数
4
解决办法
12万
查看次数

如何引用primaryStage

我将.fxml-Files用于我的应用程序的视图层.每个fxml都附有一个控制器

<AnchorPane fx:controller="movielistjavafx.view.MainWindowController">
Run Code Online (Sandbox Code Playgroud)

我们假设我有一个mainFrame和它的控制器.mainFrame.fxml加载在start(Stage)-method中.

现在你要显示一个附加到Stage/Window/Whatever的fileChooser.

为此,让fxml-controller知道例如 primaryStage.

有没有办法将它注入控制器,或者FXML在运行时是否知道它属于哪个场景和阶段?

我只有想法是将primaryStage存储在某些静态上下文中,但这似乎不是一种对我这样做的方法.

java javafx javafx-2 fxml

18
推荐指数
2
解决办法
3万
查看次数

标签 统计

javafx ×2

javafx-2 ×2

fxml ×1

initialization ×1

java ×1

javafx-8 ×1

stage ×1