Подтвердить что ты не робот

Как получить родительское окно в контроллере FXML?

Например, я хочу открыть DirectoryChooser при нажатии на кнопку:

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

И класс Controller:

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.
    }
}

Я хочу поместить главное окно в ShowDialog, чтобы оно было заблокировано, но как я могу получить к нему доступ?

4b9b3361

Ответ 1

вы можете запросить любой node для Scene, а затем вызвать Scene#getWindow().

например. ((Node)event.getTarget()).getScene().getWindow()