Можно ли изменить локаль во время выполнения в Java? - PullRequest
0 голосов
/ 27 марта 2012

Я пытаюсь написать программу, которая может переключаться между разными языками (английским и французским) во время выполнения через JComboBox, и у меня возникают проблемы с ее изменением в моем графическом интерфейсе. Это изменится, если я вручную установлю языковой стандарт до выполнения, но переключение во время выполнения не будет работать

Я создал 2 локали для моей программы

Locale loc1 = new Locale("en","EN");
Locale loc2 = new Locale("fr","FR");

И я создал ResourceBundle, и я устанавливаю его в качестве первого языка по умолчанию

ResourceBundle res;
public void createFrame()
{
    res = ResourceBundle.getBundle("ProgramResource",loc1);
    ...
    ...
}

Я создал JComboBox с именем langBox, добавил к нему выбор с помощью массива String и добавил к нему ItemListener, поэтому в моем методе itemStateChanged я пытаюсь сделать следующее.

public void itemStateChanged(ItemEvent ie)
{
        int index = langBox.getSelectedIndex();
        if(index == 0)
        {
            res = ResourceBundle.getBundle("ProgramResource",loc);
            validate();
        }
        else if (index == 1)
        {
            res = ResourceBundle.getBundle("ProgramResource",loc2);
            validate();
        }
}

Я предполагаю, что моя проблема в том, как я пытаюсь изменить комплект. Кто-нибудь может дать мне подсказку или указать мне правильное направление, пожалуйста?

Спасибо.

...