Проверка через JFormattedTextFields в Java - PullRequest
4 голосов
/ 06 августа 2011

Я хочу иметь два текстовых поля, которые будут иметь следующие проверки

  1. Оба должны быть целыми числами
  2. Значение в одном текстовом поле должно быть целым числом, кратным другим

Для этого я использовал два поля JFormattedTextField.Это то, что я делал до сих пор

NumberFormat updateFormat,sampleFormat;
updateFormat = NumberFormat.getNumberInstance();
updateFormat.setMaximumFractionDigits(0);
updateFormat.setParseIntegerOnly(true);
sampleFormat = NumberFormat.getNumberInstance();
sampleFormat.setMaximumFractionDigits(0);
sampleFormat.setParseIntegerOnly(true);
javax.swing.JFormattedTextField jFormattedTextField1 =new javax.swing.JFormattedTextField(updateFormat);        
javax.swing.JFormattedTextField jFormattedTextField2 = new javax.swing.JFormattedTextField(sampleFormat);

. С помощью этого моя первая часть завершена. Теперь я застрял со второй частью, то есть значение jFormattedTextField1 должно быть кратным целому числу jFormattedTextField2.Я думаю, что мне нужно настроить мой NumberFormat, расширив его.Но как мне это сделать?Пожалуйста, помогите мне

Ответы [ 2 ]

5 голосов
/ 06 августа 2011

Также рассмотрите возможность использования InputVerifier, как описано в Подтверждение ввода .

2 голосов
/ 06 августа 2011

NumberFormat не будет работать для «второй» части вашей проблемы, поскольку ограничение - это не ограничение формата данных , а ограничение значения данных .Я думаю, что вам нужно будет использовать DocumentFilter для второй части.Чтобы узнать больше о том, как их использовать, посмотрите здесь: Реализация фильтра документов

...