繁体   English   中英

如何在按钮上添加方法以在JavaFX中切换场景

[英]How to add a method to a button to switch between scenes in JavaFX

我创建了两个java类,它们具有一个静态方法,该方法在设置所需标签和按钮的所有属性后返回AnchorPane。 例如:

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();
    }
}

首先,我将HomePage设置为舞台上的场景。 屏幕上有一个按钮,当我单击该按钮时,我希望场景进入LoginPage。 我该怎么做呢? 这三个类都在不同的文件中。我尝试设置onAction()方法,但是在这种情况下,handle()方法的返回类型为void,而我需要返回一个AnchorPane。

为您的按钮绑定一个功能(onAction)。 在此函数中,在您的主类中调用一个函数,该函数将加载所需的场景(避免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()即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM