我的问题是所有使用FileChooser
的例子都需要传入一个舞台(stage)。唯一的问题是,我的UI是在一个fxml
文件中定义的,它使用一个与主舞台不同的控制器类。
@FXML protected void locateFile(ActionEvent event) {
FileChooser chooser = new FileChooser();
chooser.setTitle("Open File");
chooser.showOpenDialog(???);
}
我应该在???
处放什么才能使其工作?就像我说的,我没有对控制器类中任何阶段的引用,那我该怎么办呢?
fx:id
吗,还是我完全没有理解这个想法? - Electric Coffeefx:id
。但是您不必使用根节点,只需使用任何已经具有fx:id
并且已注入到控制器中的内容(所有节点都在同一场景中...)。您还可以执行Node node = (Node) event.getSource();
,但我不太喜欢它,因为这会导致向下转换。 - James_D