Javafx 2 如何在FXML控制器中获取父窗口?

Javafx 2 如何在FXML控制器中获取父窗口?,javafx-2,fxml,Javafx 2,Fxml,例如,我希望在单击按钮时打开DirectoryChooser: <VBox fx:controller="com.foo.MyController" xmlns:fx="http://javafx.com/fxml"> <children> <Button text="Click Me!" onAction="#handleButtonAction"/> </children> </VBox>

例如,我希望在单击按钮时打开DirectoryChooser:

<VBox fx:controller="com.foo.MyController"
    xmlns:fx="http://javafx.com/fxml">
    <children>
        <Button text="Click Me!" onAction="#handleButtonAction"/>
    </children>
</VBox>

我想将主窗口放入ShowDialog,这样它将被阻止,但如何访问它?

您可以向任何节点请求
场景,然后调用
场景#getWindow()


例如,
((节点)event.getTarget()).getScene().getWindow()

这可以为菜单项完成吗?您的代码为我提供了此错误:
原因:java.lang.ClassCastException:javafx.scene.control.MenuItem无法强制转换为javafx.scene.Node
@zygimantus
((MenuItem)event.getTarget()).getParentPopup().getOwnerWindow()
package com.foo;

public class MyController {
    public void handleButtonAction(ActionEvent event) {
        DirectoryChooser dc = new DirectoryChooser();
        File folder = dc.showDialog(null);//I want to put the WIndows here.
    }
}