Question

Je crée un JSpinner et je définis un NumberEditor avec un format personnalisé.

Mais peu importe ce que je fais, le format utilise ". " au lieu de ",", pas selon mes paramètres régionaux (pt_BR).

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

Est-il possible d'utiliser ", " au lieu de ". " comme séparateur décimal?

Était-ce utile?

La solution

En spécifiant un modèle de format personnalisé, vous indiquez au JRE d’ignorer vos paramètres régionaux et d’utiliser ce format spécifique. Si vous recherchez simplement des nombres à deux décimales, utilisez setModel () au lieu de setEditor (), qui créera un NumberEditor pour vous:

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

Si vous devez absolument utiliser votre propre modèle de format, vous pouvez ajuster les symboles de format décimal pour ce modèle après l'avoir créé:

    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);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top