2015-04-22 44 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

相关问题