27

たとえば、ボタンをクリックしたときに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に配置してブロックしたいのですが、どうすればアクセスできますか?

4

1 に答える 1

54

任意のノードにを要求してSceneから、を呼び出すことができますScene#getWindow()

((Node) event.getTarget()).getScene().getWindow()

@osveinから、これがのハンドラーである場合は、次のMenuItemようになります。

((MenuItem) event.getTarget()).getParentPopup().getOwnerWindow()
于 2012-11-27T18:07:02.203 に答える