Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaFX中向按钮添加方法以在场景之间切换_Java_Button_Javafx - Fatal编程技术网

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

如何在JavaFX中向按钮添加方法以在场景之间切换,java,button,javafx,Java,Button,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 LoginPage

我创建了两个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()

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

为按钮(onAction)绑定一个函数。在这个函数中,在主类中调用一个函数,该函数将加载所需的场景(void javafx.scene.scene.setRoot(父值))


编辑:

我的意思是:

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

只需在按钮上调用loadxxpage()。

完全不清楚您想做什么。你能更详细地阐述你的问题吗?我添加了更多的信息,希望能对你有更多帮助。问题是我每个场景有两个不同的文件。我试过你说的,但是在onAction中,handle()方法的返回类型是void,而我需要返回一个AnchorPane。我补充了一些信息,你能再看一遍吗?
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);
    }
}