如果语言环境是法语,如何将 JSpinner 中的浮点符号设置为点而不是逗号?

How to set the floating point symbol in JSpinner to dot instead of comma if the locale is french?

我正在制作一个 Java 法语本地化应用程序。我使用了一些只接受浮点数的 JSpinner

问题是浮点数的小数点(整数部分和小数部分之间的分隔符)用逗号表示(,)。此行为使 12.34 之类的数字无效并且 JSpinner 拒绝它,但如果我键入 12,34 它将被接受。

如何强制 JSpinner 使用点 (.) 作为小数点而不是逗号?

main 方法是这样开始的:

public static void main(String args[]) {
   Locale.setDefault(Locale.FRENCH); // Set French as the application language
   /* ... */
}

我找到了解决方案。当您使用方法 Locale.setDefault(Locale) 时,它会为 displayformatting 设置默认语言环境,但在我的例子中,我只需要显示 我的法语用户界面。为此,我还必须使用该方法的第二个重载:setDefault(Locale.Category, Locale),其中第一个参数指示我是否要使用语言环境来显示用户界面或格式化日期、数字或货币。现在的主要方法是这样的:

Locale.setDefault(Locale.FRENCH); // Display the user interfaces in French
Locale.setDefault(Locale.Category.FORMAT, Locale.ENGLISH); // But the formatting in English