2012-11-27 3 views
14

Par exemple, je veux ouvrir un DirectoryChooser en cliquant sur le bouton:Comment obtenir une fenêtre parent dans le contrôleur FXML?

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

Et la classe contrôleur:

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

Je veux mettre la fenêtre principale du ShowDialog afin qu'il sera bloqué mais comment puis-je y accéder?

Répondre

33

Vous pouvez demander n'importe quel nœud pour le Scene, puis appeler le Scene#getWindow().

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

Questions connexes