2009-10-27 1 views
3

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

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

ответ

0

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

+0

Новый подход заключается в использовании DocumentFilter, поэтому код можно использовать повторно на JTextField, JTextArea или JTextPane. Единственное ограничение заключается в том, что используемый документ распространяется на AbstractDocument. – camickr

2

Реализовать javax.swing.text.DocumentFilter удалить несоответствующие символы. Установить, что ваш любимый AbstractDocument и построить вам JTextArea с этим.

0

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

+0

Erm, и замените. –

2

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

Смежные вопросы