我正在用JavaFX 2编写一个登录屏幕。
但我想添加一个按钮“注册”,以改变场景与相同的窗口。
我试过使用“pane.setVisible(Value)”,但这不起作用
做这件事最好的方法是什么?
发布于 2013-12-10 01:45:12
你必须从另一种方法返回一个场景,或者在“开始”中创建一个场景,并将场景设置在舞台上。例如:
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,以便在其上设置另一个场景。在这种情况下,您可以做的是,创建一个输出主场景的方法,然后使用该方法进行设置。
public static Scene mainScene(final Stage primaryStage){
.....
return new Scene(...);
}https://stackoverflow.com/questions/20482160
复制相似问题