Изменить язык в Java Swing во время выполнения - PullRequest
0 голосов
/ 18 января 2012

Я хотел бы знать, возможно ли это в Java, что я хочу перезагрузить приложение Swing, чтобы я мог установить локаль. Я работаю над проектом приложения Swing, где используется более 5 языков, и я уже создал файл свойств для каждого языка. Всякий раз, когда пользователь выбирает новый язык из меню, мое приложение должно перезагружаться, чтобы изменить выбранный язык. Я застрял здесь, как перезапустить мое приложение Swing с загруженными аргументами VM и новым языком.

Для справки вот сайт, который имеет те же требования, что и я. http://teravoice.com/

После загрузки веб-страницы выберите ссылку, которая загружает jnlp, и как только приложение откроется, войдите под любым именем, и в меню файлов вы найдете подменю «язык» с 12 языками. когда я нажимаю на новый язык, приложение перезапускается с новым языком и пользовательскими данными (то есть с параметрами vm).

Спасибо.

1 Ответ

6 голосов
/ 18 января 2012

это просто возможно двумя способами, используя ResourceBundle и Locale

1) взять Locale из Native OS Locale.getDefault()

ResourceBundle rb = ResourceBundle.getBundle(
       "com.MyPackage.Properties", Locale.getDefault());

frameTitle = (rb.getString("MyFrame.Title")); //myFrame.setTitle("frameTitle");
trayTitle = (rb.getString("MyFrame.TrayTitle"));
exitTitle = (rb.getString("MyFrame.Exit"));
newInfoTitle = (rb.getString("MyFrame.NewInfo"));
sendTitle = (rb.getString("MyFrame.Send"));

2) set Языковой стандарт в среде выполнения, например, выбрав Item в JComboBox , затем необходимо обновить (лучше создать отдельный метод, void или класс) все JComponents или методы, все изменениядолжно быть сделано в Потоке отправки событий

3) некоторые примеры о I18

4) Я пользователь IDE и для Locale я использую встроенный- в редакторе свойств File,

...