Alguem saberia me dizer como é o melhor jeito de trabalhar com troca de telas no javafx?
Eu usaria um root
e trocaria o conteúdo interno
StackPane root = new StackPane(); // pode ser outros panes, geralmente uso este
// Scene scene = new Scene(root); // se for no scene
root.getChildren().addAll(tela1, tela2);
// corrige o posicionamento
tela1.managedProperty().bind(tela1.visibleProperty());
tela2.managedProperty().bind(tela2.visibleProperty());
tela1.setVisible(true);
tela2.setVisible(false);
// ou
// tela1.setVisible(false);
// tela2.setVisible(true);
// usando um bind
BooleanProperty chave = new SimpleBooleanProperty();
tela1.visibleProperty().bind(chave);
tela2.visibleProperty().bind(chave.not());
chave.set(true ou false);
// se for para mais telas, teria que usar um IntegerProperty ou ObjectProperty e
// converter para boolean usando Bindings.createBooleanBinding