私は、アプリケーションのメインウィンドウの現在のシーン(この場合はログインフレーム)を置き換えるために、JavaFXステージ用のスケーリング遷移を作成しようとしてきました。
このような場合、新しいシーンが大きいため、ウィンドウは非エレガントな方法で突然サイズが変更されます。JavaFXステージ用のサイズ変更アニメーションを作成するにはどうすればよいですか?
これをステージのサイズ変更に使用するには、スケーリングまたはサイズ変更を設定する方法はありますか?
関連するコード:
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) {}
}
}
これは素晴らしい方法です。私は新しいステージを作り、フェイディング・トランジションを使ってエレガントな方法でそれをやりましたが、あなたの提案は良いように見えるので、できるだけ早く試してみましょう。 – fturizo
Timerではなく、TimelineなどのJavaFXのビルトインアニメーション機能を使用する方が効果的です。タイマーでは、別のスレッドがあり、Platform.runLater()の呼び出しでステージまたはシーングラフを操作する呼び出しをラップしない限り、コードはスレッドセーフではありません。 – jewelsea