1
我想在2個不同場景之間切換:動態切換JavaFX中的場景
場景1:ScrollPane其中加載不同圖像。
場景2:舞臺是透明的,這裏只有1按鈕,返回到場景1
從來就已經能夠做到這一點只是有每個場景不同FXML每一次創建一個新的場景我切換它們。
問題是,當我從場景2切換到場景1時,場景1中加載的所有圖像都不存在(這很明顯,因爲我正在創建新場景,而不是「加載」場景1.
有什麼辦法讓我從場景2 SWITH場景1
場景1
public class ControllerImpl implements Initializable, ControlledScreen {
ScreensController myController;
public void initialize(URL url, ResourceBundle rb) {
}
public void setScreenParent(ScreensController screenParent){
myController = screenParent;
}
@FXML
private void goToScreen2(ActionEvent event) throws Exception{
try {
Stage primaryStage = (Stage) hideStage.getScene().getWindow();
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/arrow.fxml"));
Parent root1 = fxmlLoader.load();
primaryStage.setScene(new Scene(root));
}
catch (Exception e) {
e.printStackTrace();
}
}
@FXML
public javafx.scene.control.Button hideStage;
}
第二幕:已加載的圖片:
public class ControllerArrow implements Initializable{
ScreensController myController;
@Override
public void initialize(URL url, ResourceBundle rb) {
}
public void setScreenParent(ScreensController screenParent){
myController = screenParent;
}
@FXML
public javafx.scene.control.Button showStage;
@FXML
private void goToScreen1(ActionEvent event) throws Exception{
try{
Stage stage = (Stage) showStage.getScene().getWindow();
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/sample.fxml"));
Parent root = fxmlLoader.load();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
謝謝爲了您的迴應。我如何選擇前一個場景?我有兩個不同的控制器。我是否必須定義主要場景? –
如何實例化你的場景?完整的代碼示例會很有幫助。 – jns
我已經添加了問題中的代碼。 –