Ich habe versucht, einen Skalierungsübergang für eine JavaFX-Bühne zu machen, um die aktuelle Szene (in diesem Fall einen Login-Rahmen) für das Hauptfenster einer Anwendung zu ersetzen.
Wenn dies geschieht, wird die Größe der neuen Szene abrupt erhöht, da die neue Szene größer ist.Wie erstelle ich eine Animation zur Größenanpassung für JavaFX?
Gibt es eine Möglichkeit, einen Skalierungs- oder Größenänderungsübergang für die Größenänderung der Bühne einzurichten?
Relevante Code:
InputStream is = null;
try {
is = getClass().getResourceAsStream("/fxml/principal.fxml");
Region pagina = (Region) cargadorFXML.load(is);
cargadorFXML.<ContenedorPrincipal>getController().setEscenario(escenario);
final Scene escena = new Scene(pagina, 900, 650);
escena.setFill(Color.TRANSPARENT);
escenario.setScene(escena);
escenario.sizeToScene();
escenario.centerOnScreen();
escenario.show();
} catch (IOException ex) {
// log "Unable to load the main application driver"
log.error("No fue posible cargar el controlador principal de la aplicación.");
log.catching(ex);
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {}
}
}
Das ist eine nette Art, es zu tun. Ich habe mich dafür entschieden, eine neue Stage zu erstellen und fading-Übergänge zwischen ihnen zu verwenden, um es auf eine elegante Weise zu tun, aber dein Vorschlag scheint gut zu sein, also werde ich es so schnell wie möglich versuchen. – fturizo
Besser JavaFX-integrierte Animationsfunktionen wie Timeline anstelle eines Timers zu verwenden. Mit einem Timer haben Sie einen anderen Thread und der Code ist nicht Thread-sicher, es sei denn, Sie wickeln die Aufrufe, die das Bühnen- oder Szenendiagramm in Platform.runLater() - Aufrufen manipulieren. – jewelsea