2016-08-11 5 views
-1

Я пытаюсь создать FormattedTextField, где пользователь сообщает цену продукта. Но я не знаю, как отформатировать поле, так как продукт может иметь любой размер (например, $ 1, 72 $ или $ 489). Я хотел бы, чтобы поле могло иметь такой формат: «xxx.00» x - это числа, но они могут быть один или несколько в зависимости от цены продукта.FormattedTextField на основе ввода пользователя

Как создать необходимый формат?

+0

Почему вы пытаетесь это сделать? – ifly6

+0

Чтобы создать программу, я могу управлять затратами на мой магазин. – Levy

+0

Просто используйте ['NumberFormat.getCurrencyInstance (...)'] (http://docs.oracle.com/javase/7/docs/api/java/text/NumberFormat.html#getCurrencyInstance (java.util.Locale)): 'NumberFormat format = NumberFormat.getCurrencyInstance (Locale.US); format.setMaximumIntegerDigits (3); format.setMaximumFractionDigits (2); JFormattedTextField field = new JFormattedTextField (format); field.setValue (0.0);' –

ответ

0

В Netbeans с использованием Swing GUI Builder вы можете выполнить это, щелкнув правой кнопкой мыши на вашем FormattedTextField и перейдя на Свойства. Затем выберите formatterFactory в разделе «Свойства» и выберите категорию . Затем выберите третий вариант, который выглядит следующим образом:

¤#,##0.00 

Это даст вам именно то, что вы ищете вы, и он будет форматировать число, как вы хотите, когда пользователь щелкает из текстового поля.

Для этого в коде это будет так:

jFormattedTextField1.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter(new java.text.DecimalFormat("¤#,##0.00")))); 
Смежные вопросы