0
我編程使用JavaFX 2.登錄屏幕看起來相當不錯與Oracle文檔JavaFX的2場景切換
http://docs.oracle.com/javafx/2/get_started/form.htm
但我想添加一個按鈕「註冊」,與改變場景同一個窗口。
我試着用「pane.setVisible(value);」但沒有工作
這樣做的最佳方法是什麼?
我編程使用JavaFX 2.登錄屏幕看起來相當不錯與Oracle文檔JavaFX的2場景切換
http://docs.oracle.com/javafx/2/get_started/form.htm
但我想添加一個按鈕「註冊」,與改變場景同一個窗口。
我試着用「pane.setVisible(value);」但沒有工作
這樣做的最佳方法是什麼?
您必須從另一種方法返回一個場景或在「開始」中創建一個場景,並在舞臺上設置場景。例如:
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(...);
}
謝謝:)那已經很實用了, 但是我該如何改回第一個場景呢? :o ,因爲我不能使用「primaryStage.setScene(secondScene);」 ,因爲它是一個未知變量 – Kaito
檢查編輯。編輯。 – Stevantti
真棒:) 非常感謝你:D – Kaito