JavaFX 2场景切换

时间:2013-12-09 22:26:15

标签: java javafx

我正在使用JavaFX 2编写登录屏幕。使用oracle文档

看起来相当不错

http://docs.oracle.com/javafx/2/get_started/form.htm

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

我试过“pane.setVisible(value);”但那不起作用

这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:2)

您必须从其他方法返回场景或在“开始”中创建场景,并在舞台上设置场景。例如:

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

然后在你的开始方法:

@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才能在其上设置另一个Scene。 在这种情况下你可以做的是,制作一个输出主场景的方法,然后用它设置它。

public static Scene mainScene(final Stage primaryStage){
     .....
     return new Scene(...);
}