J'ai problème avec le changement des scènes dans mon application qui ressembleJavaFX IllegalArgumentException (est déjà défini comme la racine d'une autre scène)
Main screen > Login screen
je stocke des écrans dans le fichier principal comme hashmap<String, Node>
et tout est bon jusqu'à ce que je vais retour de l'écran de connexion à l'écran principal et que vous souhaitez charger à nouveau l'écran de connexion, voici exception et code:
java.lang.IllegalArgumentException: [email protected][styleClass=root]is already set as root of another scene
public static final HashMap<String, Parent> pages = new HashMap<>();
@FXML
private void LogIn(ActionEvent event) {
Button button = (Button) event.getSource();
Stage stage = (Stage) button.getScene().getWindow();
if(stage.getScene() != null) {stage.setScene(null);}
Parent root = MyApplication.pages.get("LoginPage");
Scene scene = new Scene(root, button.getScene().getWidth(), button.getScene().getHeight());
stage.setScene(scene);
}
Il fonctionne quand je crée de nouveaux anchorpane
Parent root = new AnchorPane(MyApplication.pages.get("LoginPage"));
Mais je veux comprendre pourquoi il me donne une exception si je travaille sur la même scène
Vraiment thats grâce a résolu mon problème –
@JasonBourne, vous devez marquer cette question comme la réponse correcte. – Kerry