Допустим, пользователь должен ввести значение Double в поле Jtext, которое затем будет вычислено.
Но если пользователь внезапно использовал более 1 периода, это вызовет исключение NumberFormatException, поэтому я предполагаю, что решение будет использовать фильтр документов для фильтрации. исключить любые дополнительные периоды или перехватить исключение и уведомить пользователя о недопустимом вводе
В настоящее время используется DocumentFilter, чтобы разрешать только цифры и периоды, но моя проблема заключается в том, как отфильтровать второй период
PlainDocument filter = new PlainDocument();
filter.setDocumentFilter(new DocumentFilter() {
@Override
public void insertString(FilterBypass fb, int off, String str, AttributeSet attr)
throws BadLocationException
{
fb.insertString(off, str.replaceAll("[^0-9.]", ""), attr);
}
@Override
public void replace(FilterBypass fb, int off, int len, String str, AttributeSet attr)
throws BadLocationException
{
fb.replace(off, len, str.replaceAll("[^0-9.]", ""), attr);
}
});
apm.setDocument(filter);
Пример
Неверный ВВОД: 1.2.2
Действительный ВВОД: 1,22
JFormattedTextField
, как показано здесь - person Robin   schedule 06.10.2013