概要
JavaFX で背景画像を設定するサンプルは FXML で指定しているものが多いです。それだと固定の画像しか使えないので、コードから差し込む方法を調べてみました。
コード
root の Pane に対し、下記のコードを追加します。
final String image = new File("path/to/images/splash_bg.jpg").toURI().toString();
controller.background.setStyle(
"-fx-background-image: url('" + image + "'); " +
"-fx-background-position: center center; " +
"-fx-background-repeat: stretch;"
);
ちなみに、画像をjarに同梱する場合は、画像を src/main/resources に配置し、下記のように指定することも可能です。
final String image = ProgressDialog.class.getResource("/splash_bg.jpg").toExternalForm();