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
我已经添加了问题中的代码。 –