[英]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.