如何引用primaryStage
我将.fxml-Files用于应用程序的视图层。每个fxml都有一个附加的控制器
<AnchorPane fx:controller="movielistjavafx.view.MainWindowController">
假设我有一个mainFrame及其控制器。mainFrame.fxml加载在start(Stage)
-method中。
现在,您想显示一个附加在舞台/窗口/任何地方的fileChooser。
为此,最好让fxml-controller知道 例如primaryStage
。
是否可以将其注入到控制器中,或者FXML在运行时是否知道它属于哪个场景和舞台?
我唯一的想法是将primaryStage存储在某个静态上下文中,但这对我来说似乎不是一种方法。
回答:
不是FXML,而是FXML(或其Controller)中的节点(控件)在运行时(添加到场景之后)知道它们属于哪个场景和舞台。
在控制器类中
...@FXML private Label label;
...
// in some method block
Stage stageTheLabelBelongs = (Stage) label.getScene().getWindow();
或者,您可以使用CDI事件获得主要阶段。查看由CDI和JBoss
Weld支持的博客条目FXML和JavaFX。
以上是 如何引用primaryStage 的全部内容, 来源链接: utcz.com/qa/412133.html