JTextField как вводить только числа?

691
17 февраля 2017, 02:03

Как сделать так, чтобы в JTextField можно было вводить только цифры?

Answer 1

Делается это при помощи DocumentFilter

class DigitFilter extends DocumentFilter {
    private static final String DIGITS = "\\d+";
    @Override
    public void insertString(FilterBypass fb, int offset, String string, AttributeSet attr) throws BadLocationException {
        if (string.matches(DIGITS)) {
            super.insertString(fb, offset, string, attr);
        }
    }
    @Override
    public void replace(FilterBypass fb, int offset, int length, String string, AttributeSet attrs) throws BadLocationException {
        if (string.matches(DIGITS)) {
            super.replace(fb, offset, length, string, attrs);
        }
    }
}

После этого вы должны назначить этот фильтр для поля

JTextField textField = new JTextField();
PlainDocument doc = (PlainDocument) textField.getDocument();
doc.setDocumentFilter(new DigitFilter());
READ ALSO
Разработать java ee приложение. С чего начать

Разработать java ee приложение. С чего начать

Меня поджимает время, поэтому хочу знать все и сразу (прошу простить и понять)

487
android слайдер картинок [требует правки]

android слайдер картинок [требует правки]

как сделать слайдер и просмотр картинок как в приложении AliExpress на странице товара? есть толковые уроки?

348
Парсинг вводимой формулы для функции

Парсинг вводимой формулы для функции

Написал программу для отрисовки графиков вводимых функций, осталось научить компьютер понимать введённую функцию и передавать её на отрисовкуЧитал,...

465
Как запустить заданный класс в JAR-файле?

Как запустить заданный класс в JAR-файле?

В JAR-файле (Testjar) есть несколько классов с методом main (Class1, Class2)

278