我正在处理JavaFX场景构建器。我的问题是,当场景的fxml文件在另一个包中时,我无法找到如何更改场景。我想我必须回到目录路径,但我不知道如何在Java中做这件事(像位置字符串中的../这样的东西在这里不起作用)。
那么,我如何能够回到目录路径,或者以其他方式如何改变我的场景而不将它们全部放入一个包中?
P.S。我必须改变场景,然后再回到上一个场景。
我改变场景的方法:
public void sceneLoader(ActionEvent event, String path) throws IOException {
Parent startPageParent1 = FXMLLoader.load(getClass().getResource(path));
Scene startPageScene1 = new Scene(startPageParent1);
Stage appStage1 = (Stage) ((Node) event.getSource()).getScene().getWindow();
appStage1.setScene(startPageScene1);
appStage1.show();
}
然而,我尝试做的事情只有在我将第二个xfml文件传输到同一个包中并从位置字符串中删除包名时才会起作用(当它类似于" FXMLAddGroup.fxml"但不喜欢" otherWindows / FXMLAddGroup.fxml")虽然我有很多fxml文件,我想把它们分成不同的包:
addGroup.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent event){
try{sceneLoader(event, "otherWindows/FXMLAddGroup.fxml");
}
catch(IOException ex){
System.out.println("Error: can not open the addGroup window");
}
}
});