Как ограничить JTextArea только допустимым набором символов? - PullRequest
3 голосов
/ 27 октября 2009

Кто-нибудь знает, есть ли простой способ ограничить допустимые символы для JTextArea. То есть аналогично JTextField с использованием MaskFormatter.

В частности, я хочу ограничить разрешенные символы для JTextArea только прописными буквами и только очень ограниченным набором символов, таких как! "# ¤% & / () =

Ответы [ 4 ]

2 голосов
/ 27 октября 2009

Вам может показаться интересной концепция Связывание фильтров документов . Первый фильтр автоматически преобразует символы нижнего регистра в верхний регистр (включен в вышеуказанную ссылку), поэтому пользователю не нужно беспокоиться об этом, тогда второй фильтр будет проверять все символы (вам нужно написать свои собственные). 1003 *

2 голосов
/ 27 октября 2009

Реализация javax.swing.text.DocumentFilter для удаления неподходящих символов. Установите это на свой любимый AbstractDocument и создайте из него JTextArea.

0 голосов
/ 27 октября 2009

Вы можете назначить фильтр для документа JTextArea. Просто переопределите метод insertString в классе DocumentFilter, чтобы игнорировать символы

0 голосов
/ 27 октября 2009

Попробуйте расширить PlainDocument и изменить метод insertString(), чтобы отфильтровать все нежелательные символы и заменить строчные буквы заглавными. Тогда вы можете использовать этот специальный документ в вашем JTextArea.

...