我需要我的应用程序以编程方式设置所有敏感组件的语言环境,例如 JTextFields
和 JTextAreas
。我也有日期信息(写成一个词的月份),这也是语言环境敏感的。
我写了下面的代码,但它似乎没有完成这项工作:
public static void setLocale(java.awt.Container c /* main form */, Locale locale /* Locale.ENGLISH */) {
Component[] components = c.getComponents();
for (Component comp : components) {
if (comp instanceof java.awt.Container)
setLocale((java.awt.Container) comp, locale);
comp.setLocale(locale);
}
}
代码有什么问题?
最佳答案
下面的代码应该可以解决这个问题:
public void switchDefaultLocale(Locale l) {
if (! l.equals(Locale.getDefault())) {
Locale.setDefault(l);
JComponent.setDefaultLocale(l);
}
}
但这只会对 JComponent 的新实例产生影响。 如果您想更新现有实例,请不要忘记在每个实例上调用 updateUI()。
关于java - 设置组件的语言环境不成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6942966/