2009-06-23 163 views
0

我正在创建JSpinner并使用自定义格式设置NumberEditor。JSpinner编辑器区域

但无论我做什么格式使用“。”而不是“,”,而不是根据我的区域设置(pt_BR)。

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

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

回答

3

通过指定自定义格式模式,您告诉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); 
+0

谢谢,它的工作。我真的需要自定义模式,因为我想要“1,00”而不是“1”。 – tuler 2009-06-24 14:06:21

相关问题