Frage

Ich bin ein JSpinner Schaffung und Erhaltung einer NumberEditor mit einem benutzerdefinierten Format einstellen.

Aber egal, was ich tue das Format verwendet „“ statt "" nicht nach meinem locale (pt_BR).

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

Ist es möglich, verwenden „“ anstelle von „“ als Dezimaltrennzeichen?

War es hilfreich?

Lösung

Durch ein benutzerdefiniertes Format Muster spezifizieren Sie die JRE erzählen Ihren Standort zu ignorieren und dass bestimmtes Format verwenden. Wenn Sie einfach nach einem Spinner für Zahlen auf zwei Dezimalstellen sind, verwendet 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 die Dezimalformat Symbole für dieses Muster einstellen, 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);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top