Я вижу два очевидных подхода:
Вместо String
от ResourceBundle
, получите какой-нибудь держатель String
источника событий. Document
было бы очень тяжелым решением, но подойдет все, что может обработать замену неизменного значения. Вместо того, чтобы просто установить текст на метке, скажем, есть метод, который также устанавливает слушателя. Обратите внимание, это довольно «тяжелое» решение.
В качестве альтернативы, есть центральный репозиторий слушателей, которые запускаются при изменении локали, каждый из которых затем возвращается и повторно выполняет соответствующую часть кода настройки (не дублируйте). Для распространенных случаев, когда, скажем, JLabel
использует строку ресурса буквально, вы можете объединить их все в один слушатель с WeakHashMap<JLabel,String>
. Иногда лучше избегать маленьких слушателей.