我想将JFXDatePicker的Locale改为我自己的自定义Locale,如Cyrillic,更准确地说,是Uzbek语言。我在谷歌上搜索了一下,但没有关于该怎么做的好提示。
在这个DatePicker中,我想看到我自己的自定义字符串,而不是пн、мар19等。我怎么能把JFXDatePicker修改成自己的Locale?
迟到总比不回答好。
JFXDatePickerContent
是负责格式化所有单元格,日,月的类。JFXDatePicker
. 有一个例子是: JFXDatePickerContent
里面 JFXDatePickerSkin
:
JFXDatePicker > JFXDatePickerSkin > JFXDatePickerContent
JFXDatePickerContent
提供了这一方法。
protected Locale getLocale() {
return Locale.getDefault();
}
虽然该方法的设计似乎是为了重写,以返回一个特定的。Locale
,该类有一个包私有的构造函数。这里是返回该内容对象的方法,该方法来自 JFXDatePickerSkin
:
@Override
protected Node getPopupContent() {
if (content == null) {
content = new JFXDatePickerContent(jfxDatePicker);
}
return content;
}
问题是: private JFXDatePickerContent content
对象的内部直接访问(不使用这个getter方法)。JFXDatePickerSkin
这意味着覆盖这个方法,返回另一个自定义的 JFXDatePickerContent
(如果有可能的话)不会使一切工作都达到预期的效果。
简答。使用 Locale.setDefault(Locale newLocale);
(如果你的应用程序中可以这样做的话)。
我不确定乌兹别克语是否支持西里尔字母,但应该这样做。
Locale uzCyrl = new Locale.Builder().setLanguage("uz").setScript("Cyrl").build();
Locale.setDefault(uzCyrl);
以下是设置西班牙西班牙语的语言环境后的输出。
Locale.setDefault(new Locale("es", "ES"));