[英]JavaFX Changing Scene Instead of Stage
我正在制作一個程序並使用JavaFX作為主要的GUI設置。 當我進入每個不同的方法時,我正在打開和關閉每個階段。
這有點令人討厭,因為用戶在完成程序時會有很多屏幕打開和關閉。
我的問題是,有沒有辦法,每次我可以進入我的程序的不同部分而不是打開一個階段,我可以在場景之間切換? 在這種情況下,場景之間切換是否正確? 我需要在方法之間傳遞一個階段嗎?
你可以告訴我,我剛剛開始使用JavaFX,所以我會非常感激一點教訓。
編輯:我已經決定使用JavaFXML更新我的應用程序,但是我很難將一個場景傳遞給我的控制器。 這是我的控制器;
public class MainApp extends Application {
@FXML
public Stage primaryStage;
@FXML
private AnchorPane rootLayout;
@FXML
private JobInterface jInterface;
@Override
public void start(Stage primaryStage) {
primaryStage = new Stage();
setPrimaryStage(primaryStage);
initRootLayout();
}
@FXML
public void initRootLayout(){
try {
primaryStage = getPrimaryStage();
FXMLLoader loader = new FXMLLoader();
loader.setLocation(MainApp.class.getResource("MainInterface.fxml"));
rootLayout = (AnchorPane) loader.load();
Scene scene = new Scene(rootLayout);
primaryStage.setScene(scene);
primaryStage.show();
setPrimaryStage(primaryStage);
} catch (IOException e) {
e.printStackTrace();
}
}
@FXML
private void setJobLayout(){
primaryStage = getPrimaryStage();
jInterface = new JobInterface();
jInterface.initJobLayout();
primaryStage.setScene(jInterface.getScene());
}
public static void main(String[] args) {
launch(args);
}
public Stage getPrimaryStage() {
return primaryStage;
}
public void setPrimaryStage(Stage primaryStage) {
this.primaryStage = primaryStage;
}
}
這是一種使用不同的FXML文件更改場景並嘗試將場景傳遞回控制器的方法;
public class JobInterface {
private AnchorPane rootLayout;
private Scene scene;
public void initJobLayout(){
try {
FXMLLoader loader = new FXMLLoader();
loader.setLocation(MainApp.class.getResource("JobInterface.fxml"));
rootLayout = (AnchorPane) loader.load();
scene = new Scene(rootLayout);
setScene(scene);
} catch (IOException e) {
e.printStackTrace();
}
}
public Scene getScene() {
return scene;
}
public void setScene(Scene scene) {
this.scene = scene;
}
}
我現在遇到的問題是主應用程序中此行的NullPointerException;
primaryStage.setScene(jInterface.getScene());
關於我哪里出錯的任何想法?
非動畫
無需動畫教程即可更改場景: http : //docs.oracle.com/javafx/2/api/javafx/stage/Stage.html#setScene%28javafx.scene.Scene%29 http://docs.oracle.com/ JavaFX的/ 2 / API / JavaFX的/場景/布局/ Pane.html#的getChildren%28%29
動畫
使用動畫教程更改場景: https : //blogs.oracle.com/acaicedo/entry/managing_multiple_screens_in_javafx1 https://blogs.oracle.com/acaicedo/entry/managing_multiple_screens_in_javafx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.