多言語サポートを備えた JavaFX アプリケーションを構築しています。そのため、次の方法でファイルをロードしfxml
ます。
AnchorPane page = (AnchorPane) FXMLLoader.load(Main.class.getResource("fxml/RealTimeInitialPanel.fxml"),Language.getBundle());
デフォルトに基づいてリソースバンドルを渡していますLanguage
。上記Language
のクラスは ResourceBundle を拡張し、現在の Locale に基づいて String を返します。言語を変更するには、 を呼び出すだけLanguage.setLocale(..)
です。すべてがうまく機能します。
しかし、ユーザーが外出先で言語を変更したとします。画面を更新するように fxml または UI に通知するにはどうすればよいですか。そうすれば、再び呼び出さgetString(..)
れ、setLocale に基づいてテキストが更新されます。Swing では、定期的に更新されます。しかし、fx iamではできません