Ho cercato di eseguire una transizione di ridimensionamento per uno stage JavaFX per sostituire la scena corrente (in questo caso un frame di accesso) per la finestra principale di un'applicazione.
Quando ciò accade, poiché la nuova scena è più grande, le finestre vengono ridimensionate in modo non elegante.Come si crea un'animazione Resize per lo stage JavaFX?
C'è un modo per impostare un ridimensionamento o ri-formato di transizione per fare questo per il ridimensionamento palco?
codice rilevante:
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) {}
}
}
Questo è un bel modo di farlo. Ho optato per la creazione di un nuovo stage e l'utilizzo di transizioni di dissolvenza tra di loro per farlo in maniera elegante, ma il tuo suggerimento sembra buono, quindi proverò appena possibile. – fturizo
È meglio utilizzare le funzionalità di animazione incorporate di JavaFX come la Timeline piuttosto che un timer. Con un timer si ha un thread diverso e il codice non è thread-safe a meno che non si avvolgano le chiamate che manipolano il grafico di stage o di scena nelle chiamate Platform.runLater(). – jewelsea