2012-11-27 15 views
14

Na przykład, chcę otworzyć DirectoryChooser po kliknięciu na przycisk:Jak uzyskać okno nadrzędne w kontrolerze FXML?

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

a klasa Kontroler:

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

chcę umieścić okna głównego do ShowDialog tak, że zostanie zablokowany, ale jak mogę uzyskać do niego dostęp?

Odpowiedz

33

możesz poprosić dowolnego węzła o numer Scene, a następnie zadzwonić pod numer Scene#getWindow().

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

Powiązane problemy