2015-04-22 70 views
0

我創建了具有設置所需標籤和按鈕的所有屬性後返回AnchorPane靜態方法有兩個Java類的場景之間切換。 例如:如何將一個方法添加到按鈕的JavaFX

class HomePageScene { 
    static AnchorPane getHomePageScene() { 
     //some code 
     //a button which is to be clicked to go to Login Page 
     //some code 
    } 
} 

class LoginPageScene { 
    static AnchorPane getLoginPageScene() { 
     //some code 
    } 
} 

而且還有其具有main()另一個類。

public class JavaFXEventDemo extends Application { 
    public static void main(String[] args) { 
     launch(args); 
    } 
    public void start(Stage myStage) { 
     myStage.setTitle("Program Windiw"); 
     AnchorPane HomePane = HomePageScene.getHomePageScene(); 
     AnchorPane LoginPane = LoginPageScene.getLoginPageScene(); 

     Scene HomePage = new Scene(HomePane, 400.0, 300.0); 
     Scene LoginPage = new Scene(LoginPane, 400.0, 300.0); 

     myStage.setScene(HomePage); 
     myStage.show(); 
    } 
} 

首先,我將主頁設置爲舞臺上的場景。在屏幕上有一個按鈕,當我點擊時,我想將場景轉到LoginPage。我該怎麼做呢? 這三個類在不同files.I嘗試設置的OnAction()方法,但在這,handle()方法的返回類型爲void,而我需要返回AnchorPane。

+0

完全不清楚,你想要做什麼。你能否更詳細地闡述你的問題? – Turing85

+0

我添加了更多的信息,希望它可以幫到更多 – vicky96

回答

2

爲您的按鈕綁定一個函數(onAction)。在這個函數中,調用你的主類中的函數,它將加載你想要的場景(void javafx.scene.Scene.setRoot(Parent value))?


編輯:

我的意思:

public class JavaFXEventDemo extends Application { 

    private static Scene HomePage; 
    private static Scene LoginPage; 
    private static Stage myStage; 

    public static void main(String[] args) { 
     launch(args); 
    } 
    public void start(Stage myStage) { 
     JavaFXEventDemo.myStage = myStage; 
     myStage.setTitle("Program Windiw"); 

     AnchorPane HomePane = HomePageScene.getHomePageScene(); 
     AnchorPane LoginPane = LoginPageScene.getLoginPageScene(); 

     HomePage = new Scene(HomePane, 400.0, 300.0); 
     LoginPage = new Scene(LoginPane, 400.0, 300.0); 

     loadHomePage(); 
     myStage.show(); 
    } 

    public static void loadHomePage(){ 
     JavaFXEventDemo.myStage.setScene(HomePage); 
    } 

    public static void loadLoginPage(){ 
     JavaFXEventDemo.myStage.setScene(LoginPage); 
    } 
} 

並調用loadXXXXPage()在您的按鈕。

+0

問題是我爲每個場景有兩個不同的文件。我曾嘗試過你所說的,但在onAction中,handle()方法的返回類型是void,而我需要返回一個AnchorPane。我添加了更多信息,你能否再次看到它? – vicky96

相關問題