JSpinner 编辑器语言环境

Posted

技术标签:

【中文标题】JSpinner 编辑器语言环境【英文标题】:JSpinner editor locale 【发布时间】:2009-06-23 20:42:44 【问题描述】:

我正在创建一个 JSpinner 并使用自定义格式设置 NumberEditor。

但无论我做什么格式都使用“。”而不是“,”,不是根据我的语言环境 (pt_BR)。

priceSpinner = new JSpinner();
priceSpinner.setEditor(new JSpinner.NumberEditor(priceSpinner, "0.00"));

是否可以使用“,”而不是“。”作为小数分隔符?

【问题讨论】:

【参考方案1】:

通过指定自定义格式模式,您是在告诉 JRE 忽略您的语言环境并使用该特定格式。如果您只是想将数字微调到小数点后两位,请使用 setModel() 而不是 setEditor(),这将为您创建 NumberEditor:

    JSpinner priceSpinner = new JSpinner();
    priceSpinner.setModel(new SpinnerNumberModel(0.00, 0.00, 100.00, 0.01));

如果您绝对必须使用自己的格式模式,您可以在创建后调整该模式的十进制格式符号:

    JSpinner priceSpinner = new JSpinner();
    JSpinner.NumberEditor editor = new JSpinner.NumberEditor(priceSpinner, "0.00");
    DecimalFormat format = editor.getFormat();
    //better to use Locale.getDefault() here if your locale is already pt_BR
    Locale myLocale = new Locale("pt", "BR");
    format.setDecimalFormatSymbols(new DecimalFormatSymbols(myLocale));
    priceSpinner.setEditor(editor);

【讨论】:

谢谢,它成功了。我真的需要自定义模式,因为我想要“1,00”而不是“1”。

以上是关于JSpinner 编辑器语言环境的主要内容,如果未能解决你的问题,请参考以下文章

VS Code配置Go语言开发环境(建议使用goland)

「C语言」Windows+EclipseCDT下的C语言开发环境准备

JSpinner数字编辑器显示

实验四 Linux系统C语言开发环境学习

Python语言开发环境之Spyder

debian怎么搭建c语言编译环境