2015-03-10 1 views
0

Впервые спросил.Как прослушивать символы верхнего регистра в JTextPane как пользовательские типы

Я разработал текстовый редактор, используя jTextPane java. Редактор теперь делает все, что должен сделать редактор; открывать, закрывать, сохранять, сохранять, вырезать, копировать и вставлять и т. д. У меня есть несколько дополнительных кнопок, которые делают разные вещи для выделенного текста.

Теперь мой вопрос: Я хочу, чтобы один из этих методов выполнялся каждый раз, когда пользователь вводит слово, начинающееся с буквы capitol. Я немного потерял информацию о том, где начать с проверки того, является ли каждый персонаж капитолией по типу пользователя.

Надеюсь, я предоставил достаточно информации.

Благодаря

+0

Вы хотите проверить, когда пользователь закончил вводить слово, например. путем ввода пространства,.,? ! и т. д. – Adam

+0

Это может сработать. if (пользователь вводит пробел), проверьте, является ли первая буква предыдущего слова верхним регистром. Или проверить каждый символ, если это верхний регистр, и сохранить слово в строке для манипуляции при нажатии пробела. –

ответ

0

Что вы хотите делать, когда пользователь «Я»? Вы не знаете, каким будет следующий персонаж. Это может быть символ верхнего регистра, символ нижнего регистра или пробел.

Я не уверен, какой тип обработки вы намереваетесь делать каждый раз, когда вводится символ верхнего регистра, потому что обычно вы не знаете контекст этого символа, пока не будут введены другие символы.

В любом случае вы перехватываете изменения в DocumentJTextPane перед внесением изменений с помощью DocumentFilter. Таким образом, вы можете использовать DocumentFilter для вызова вашего метода при вводе символа верхнего регистра. Ознакомьтесь с разделом из учебника Swing по телефону Implementing a Document Filter для получения дополнительной информации.

Кроме того, что происходит, когда пользователь вставляет строку текста в текстовое поле? Несколько слов могут содержать символы верхнего регистра.

0

Как camickr сказал DocumentFilter лучший ответ, что ему нужно сделать, это следить за space, если после заглавной буквы "[A-Z]", а затем сохранить caret положение, когда другое пространство вводится слово закончено, и действие уволено. BTW, ему нужно отслеживать не только пространство, но и новые символы линии и табуляции.