2012-11-27 16 views
14

Ad esempio, voglio aprire una DirectoryChooser quando si fa clic sul pulsante:Come ottenere la finestra genitore nel controller FXML?

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

E la classe 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. 
    } 
} 

voglio mettere la finestra principale al ShowDialog in modo che sarà bloccato ma come posso accedervi?

risposta

33

è possibile chiedere qualsiasi nodo per Scene e quindi chiamare Scene#getWindow().

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

Problemi correlati