JTextField (NetBeans) - CTRL + V для обхода правила события Character.isAlphabetic

Я пытаюсь создать jTextField в NetBeans, который принимает ТОЛЬКО буквы. Пока мне удалось сделать это с помощью события KeyTyped. Однако, если пользователь CTRL + C текст любой, jTextField примет этот текст, когда CTRL + V'd. Я хочу предотвратить это.

Вот код события:

private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) {                                     
    // TODO add your handling code here:
    char c=evt.getKeyChar();

    if (!(Character.isAlphabetic(c)) &&  !(c==KeyEvent.VK_SPACE) ){
        evt.consume();
    }
}

Пример

Вам не нужно заботиться об этом с помощью событий JTextField. Что вам нужно сделать, так это создать и использовать DocumentFilter для вашего конкретного JTextField. См. Этот SO-ответ - хороший пример. Примените фильтр к любому полю JTextField, которое вам нравится.

DevilsHnd 26.10.2018 07:50

Это сработало! Спасибо!

Lestat 27.10.2018 02:06

Также обратите внимание, что вы можете динамически включать фильтр с помощью: ((AbstractDocument) jTextField1.getDocument()).setDocumentFilter(new MyDocumentFilter()); и динамически выключать фильтр с помощью: ((AbstractDocument) jTextField1.getDocument()).setDocumentFilter(null);.

DevilsHnd 27.10.2018 02:11
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
61
0

Другие вопросы по теме