首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaFX 2场景开关

JavaFX 2场景开关
EN

Stack Overflow用户
提问于 2013-12-09 22:26:14
回答 1查看 516关注 0票数 0

我正在用JavaFX 2编写一个登录屏幕。

started/form.htm

但我想添加一个按钮“注册”,以改变场景与相同的窗口。

我试过使用“pane.setVisible(Value)”,但这不起作用

做这件事最好的方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-10 01:45:12

你必须从另一种方法返回一个场景,或者在“开始”中创建一个场景,并将场景设置在舞台上。例如:

代码语言:javascript
复制
public static Scene secondScene(final Stage primaryStage){
     BorderPane pane = new BorderPane();
     Label l = new Label("Second Scene");
     pane.setCenter(l);

      //let's say I have a button that changes back to original stage
     Button b = new Button("Main stage");  
     b.setOnAction(new EventHandler<ActionEvent>(){
     public void handle(ActionEvent t){
           // create your own Scene and then set it to primaryStage
          primaryStage.setScene(new Scene ... );
     }
     });

     return new Scene(pane, 300, 300);
}

然后在开始方法上:

代码语言:javascript
复制
@Override
public void start(Stage primaryStage){
BorderPane mainPane = new BorderPane();
Button b = new Button("Register");
mainPane.setCenter(b);

b.setOnAction(new EventHandler<ActionEvent>(){
     public void handle(ActionEvent t){
          primaryStage.setScene(secondScene(primaryStage));
     }
});

  primaryStage.setScene(new Scene(mainPane, 300,300));
  primaryStage.show();
}

当按下按钮时,这将更改为"SecondScene“。

编辑/

您需要将primaryStage作为参数传递给SecondScene,以便在其上设置另一个场景。在这种情况下,您可以做的是,创建一个输出主场景的方法,然后使用该方法进行设置。

代码语言:javascript
复制
public static Scene mainScene(final Stage primaryStage){
     .....
     return new Scene(...);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20482160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档