2014-03-28 79 views
0

有沒有辦法在JavaFx應用程序中將我的場景保存在單獨的Java文件中? 我想是這樣的:JavaFX2分離類中的場景

public class MyApp extends Application 
    { 

    private void init(Stage primaryStage) 
    { 
     Group root = new Group(); 
     primaryStage.setResizable(false); 
     Login login = new Login(root, primaryStage); // from another file 
     primaryStage.setScene(login); 
    } 

我有身份驗證後關閉我的登錄場景,從另一個文件加載另一個場景,所以我經過primaryStage作爲一個參數爲我login Scene使用stage.close()

有沒有更好的方法來做到這一點?

我的登錄場景文件

public class Login extends Scene 
{ 
    public Login(Group root, final Stage stage) 
    { 
     super(root, 265, 390, Color.web("EBE8E3")); 

有沒有引用當前場景舞臺另一種方式?

回答

1

您不必通過stage作爲參數。舞臺始終可以從當前場景的節點中獲得!

scene.getWindow() 

這將返回現場的舞臺/窗口!

的Javadoc:http://docs.oracle.com/javafx/2/api/javafx/scene/Scene.html#getWindow%28%29

例子:How to get parent Window in FXML Controller?

http://blog.crisp.se/2012/08/29/perlundholm/window-scene-and-node-coordinates-in-javafx

+0

謝謝。我從stage.close()切換;到window.hide();.現在它工作得更好。 –