2009-06-23 11 views
0

Ich erstelle ein JSpinner und setze einen NumberEditor mit einem benutzerdefinierten Format.Jspinner-Gebietsschema

Aber egal was ich mache das Format verwendet "." anstelle von ",", nicht gemäß meinem Gebietsschema (pt_BR).

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

Ist es möglich "," anstelle von "." als Dezimaltrennzeichen?

Antwort

3

Indem Sie ein benutzerdefiniertes Formatmuster angeben, weisen Sie die JRE an, Ihr Gebietsschema zu ignorieren und dieses spezifische Format zu verwenden. Wenn Sie einfach nach einem Spinner für Zahlen auf zwei Dezimalstellen sind, verwenden setModel() anstelle von setEditor(), die eine NumberEditor für Sie erstellen:

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

Wenn Sie unbedingt Ihr eigenes Format Muster verwenden müssen, können Sie Passen Sie die Dezimalformat-Symbole für dieses Muster an, nachdem Sie es erstellt haben:

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

Danke, es hat funktioniert. Ich brauche wirklich das benutzerdefinierte Muster, weil ich "1,00" anstelle von "1" möchte. – tuler