Какой лучший способ получить значение TextArea после ввода ключа, включая этот символ?
Если я делаю это в четном слушателе, textarea.getText()
возвращает значение без возможного нового символа.
В основном я вижу два пути:
откладывает обработку с помощью что-то вроде invokeLater (). Я бы предпочел решение без потоков.
выяснение, куда поместить символ в текст, исходя из положения каретки.
Есть ли что-нибудь более простое?
Спасибо.
Редактировать: Вот что у меня есть:
JTextArea textarea = (JTextArea) evt.getComponent();
String texySource = textarea.getText();
char keyCode = evt.getKeyChar();
//if( Character.isLetterOrDigit( keyCode ) || Character.isSpaceChar( keyCode ) )
if( keyCode >= 0x20 || keyCode == 0x0A || keyCode == 0x0D ){
// TODO: The carret doesn't have to be at the end...
//texySource += Character.toString( evt.getKeyChar() );
String ch = Character.toString( evt.getKeyChar() );
texySource = StringUtils.overlay(texySource, ch,
textarea.getSelectionStart(),
textarea.getSelectionStart() );
}