如何引用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

回到顶部