2015-03-24 2 views
1
private JFormattedTextField floatingText = new JFormattedTextField(); 

DecimalFormat df = new DecimalFormat(); 
NumberFormatter dnff = new NumberFormatter(df); 
DefaultFormatterFactory factory = new DefaultFormatterFactory(dnff); 
floatingText.setFormatterFactory(factory); 

Он отлично работает, когда я вхожу небольшие числа, такие как 1,23, но когда я вхожу BigDecimals как 9.99999999 она округляет его до 10. Что я могу сделать, так Formatter может принять BigDecimal?JFormattedTextField и BigDecimals

ответ

2

Вы можете изменить минимальные и максимальные цифры для отображения с помощью методов на DecimalFormat. Итак:

DecimalFormat df = new DecimalFormat(); 
df.setMaximumFractionDigits(20); 

Есть и другие способы, чтобы поиграть со слишком.

+0

Я сделал максимум 16, но когда он превысил максимальный уровень, он снова округляется, как я могу сделать так, чтобы он не принимал входные данные, превышающие 16 цифр? – PNC

+1

ах, это немного сложнее. Для этого вы можете использовать 'DocumentFilter'. См. Http://stackoverflow.com/questions/12793030/jtextfield-limiting-character-amount-input-and-accepting-numeric-only –

Смежные вопросы