我试图编写一个程序,它可以在运行时通过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();
}
}我假设我的问题在于我试图更改捆绑包的方式。任何人都可以给我一个线索,或请指点我正确的方向吗?
谢谢。