是否可以在Java中在运行时更改语言环境?

时间:2012-03-26 23:39:02

标签: java swing user-interface internationalization itemlistener

我正在尝试编写一个能够在运行时通过JComboBox在不同语言环境(英语和法语)之间进行更改的程序,并且我无法在GUI上更改它。如果我在运行时之前手动设置语言环境但在运行时切换它似乎无法正常工作

我为我的程序创建了2个语言环境

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

我创建了一个ResourceBundle,并将其设置为默认的第一个语言环境

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

我创建了一个名为langBox的JComboBox,并使用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();
        }
}

我假设我的问题在于我正在尝试更改捆绑包的方式。任何人都可以给我一些线索或指出我正确的方向吗?

感谢。

0 个答案:

没有答案