2012-11-12 57 views
4

我有一個單獨的窗口JavaFX應用程序,從一個JavaFX教程創建。JavaFX - 如何設置默認的主動控制

我通過下面的函數設置新窗口的內容:

private Initializable replaceSceneContent(final String fxml) throws Exception { 

    // wczytanie fxml 
    FXMLLoader loader = new FXMLLoader(); 
    InputStream in = Main.class.getResourceAsStream(fxml); 
    loader.setBuilderFactory(new JavaFXBuilderFactory()); 
    loader.setLocation(Main.class.getResource(fxml)); 
    AnchorPane page; 
    try { 
     page = (AnchorPane) loader.load(in); 
    } finally { 
     in.close(); 
    } 

    Scene scene = new Scene(page, w, h); 
    stage.setScene(scene); 
    return (Initializable) loader.getController(); 
} 

但我想請從此FXML文件TextField的一個是默認激活。這個怎麼做?我試圖在控制器的初始化方法中調用requestFocus方法,但它不起作用。我還沒有在AnchorPane類(AnchorPane是fxml控件樹的根元素)中的TextField類中找到任何合適的屬性。

回答

9

嘗試用

Platform.runLater(new Runnable() { 
    public void run() { 
     textField.requestFocus(); 
    } 
}); 
包裹你的 requestFocus()通話