У меня есть такой числовой формат:
NumberFormat format = NumberFormat.getInstance();
И поле форматированного текста:
JFormattedTextField score = new JFormattedTextField(format)
В моем коде я имею:
score.addFocusListener(new FocusListener() {
@Override
public void focusLost(FocusEvent e) {
}
@Override
public void focusGained(FocusEvent e) {
if (someValue >= 0)
score.setText(Integer.toString(someValue));
else
score.setText("");
}
});
Я пытался преобразовать ввод для текстового поля оценки, только если значение> = 0, если не просто оставить его пустым.Этот код не работает должным образом, на самом деле, если я пытаюсь сохранить положительное значение, скажем, 4, то я пытаюсь изменить его на отрицательное значение, оно не работает должным образом.
Есть ли способсделать это?Я хотел бы отобразить все значения> = 0, но «скрыть» отрицательные значения, так что, скажем, -5, похоже на преобразование в нулевое значение.
РЕДАКТИРОВАТЬ:
Как предложил Прасад Карунагода япытался использовать NumberFormmater, но я не могу справиться с одной ситуацией:
У меня в методе FocusGained есть оператор if, чтобы проверить, если someValue
il> = 0, и, если это так, установить текст.У меня есть предустановленное значение, равное -1, до того, как пользователь сможет его редактировать, поэтому в первый раз оно работает хорошо.Теперь, скажем, пользователь изменяет текст и устанавливает допустимое число (свойство форматера снова имеет свойство Minimum, равное 0, как предлагает Прасад Карунагода), скажем, 5, и это все хорошо.
Теперь у меня есть кнопка, котораясбрасывает это someValue
в -1, поэтому, когда пользователь вводит текст для изменения, значение текста равно 5 (последнее действительное число, введенное пользователем).Однако я хотел установить пустой текст после нажатия кнопки, чтобы сбросить someValue
на -1 и не отображать старое значение, возможно ли это?