سؤال

وأنا خلق JSpinner ووضع NumberEditor مع تنسيق مخصص.

ولكن بغض النظر عن ما أقوم به يستخدم تنسيق "." بدلا من ""، وليس وفقا لبلدي لغة (PT_BR).

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

هل من الممكن استخدام "،" بدلا من "". كفاصل عشري؟

هل كانت مفيدة؟

المحلول

وعن طريق تحديد نمط تنسيق مخصص أنك تقول 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);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top