Я пытаюсь ограничить входные значения внутри JFormatdedTextField на [0,1, 100] с использованием AbstractFormatterJFormattedTextField, принимают значения [0,1, 100], неудобно написание чисел
public AbstractFormatter getFormatter(JFormattedTextField tf) {
NumberFormat f = DecimalFormat.getInstance();
f.setMinimumFractionDigits(1);
f.setMaximumFractionDigits(2);
InternationalFormatter iff= new InternationalFormatter(f);
iff.setAllowsInvalid(false);
iff.setMinimum(0.1);
iff.setMaximum(100.00);
return iff;
}
Однако абстрактный форматировщик имеет странное поведение. Предположим, что я хотел бы написать следующее число внутри интервала: 0.2.
Абстрактные Formatter блоки первая цифра: 0. Необходимо написать 0.2 в 2 этапа:
a] 1.2 //or any digit > 0
b] delete 1: 1.2->0.2
Такое поведение является для пользователя запутанной. Есть ли способ предотвратить эту неудобную запись чисел?
Благодарим за помощь.
по дизайну и вашим ограничениям это не сработает. вам просто нужно будет укусить пулю и выбрать 0 как минимум. то, если 0 вставлен, вы снова запрашиваете ввод ... –
Либо это, либо создайте свой собственный класс InputVerifier и используйте его вместо этого. – markspace