Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как обработать событие ввода строки в JTextArea / 8 сообщений из 8, страница 1 из 1
02.04.2014, 16:12
    #38603233
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обработать событие ввода строки в JTextArea
Всем привет!

Может кто знает,

как можно обработать событие ввода строки в JTextArea.

Например, пользователь ввел строку, нажал enter - программа отловила событие.

Хотел использовать ActionListener, но он для JTextArea не подходит.

Спасибо.
...
Рейтинг: 0 / 0
02.04.2014, 16:24
    #38603251
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обработать событие ввода строки в JTextArea
В DocumentListener можно ловить все изменения текста и смотреть есть ли в них перенос строки.
...
Рейтинг: 0 / 0
02.04.2014, 16:28
    #38603258
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обработать событие ввода строки в JTextArea
Можно еще через InputMap замапить Action на нажатие ENTER. Вопрос только в том что делать при paste.
...
Рейтинг: 0 / 0
02.04.2014, 16:45
    #38603285
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обработать событие ввода строки в JTextArea
Blazkowicz,
Спасибо, я тут ещё один способ нашел - через KeyEvent:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
class CommandListener implements KeyListener{
        String command;
        public void keyPressed(KeyEvent ke){
            if (ke.getKeyCode() == KeyEvent.VK_ENTER){
                command = ta.getText();
            }
        }
        public void keyReleased(KeyEvent ke){}
        public void keyTyped(KeyEvent ke){}
    }



Сейчас его тестирую.
...
Рейтинг: 0 / 0
02.04.2014, 16:46
    #38603288
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обработать событие ввода строки в JTextArea
Научитесь использовать Action/InputMap/ActionMap вместо KeyListener. Не пожалеете.
...
Рейтинг: 0 / 0
02.04.2014, 16:51
    #38603298
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обработать событие ввода строки в JTextArea
Blazkowicz, спасибо.

Почитаю про эти способы.
...
Рейтинг: 0 / 0
02.04.2014, 19:18
    #38603469
J.Serge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обработать событие ввода строки в JTextArea
BlazkowiczНаучитесь использовать Action/InputMap/ActionMap вместо KeyListener. Не пожалеете.

Что-то у меня сомнения, что через actionMap будет проще.
В них нельзя добавить свои элементы в дополнение к тем, что уже есть. Можно только заменить их (на то это и Map).
В JTextArea на перевод строки уже повешен свой DefaultEditorKit.InsertBreakAction, который что-то полезное делает, но никого об этом не информирует - подцепить к нему listener'а нельзя.
Можно вытащить из InputMap.ActionMap JTextArea стандартный Action на перевод строки, заменить его своим, в котором делать что-то свой и потом делегировать обработку перевода строки вытащенному стандартному. Как-то уродливо это..
...
Рейтинг: 0 / 0
03.04.2014, 11:42
    #38603995
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обработать событие ввода строки в JTextArea
J.Serge,

Ага, таки есть Action. Про EditorKit я уже и забыл совсем. Спасибо. Но я бы на него и пробовал зацепить свой Action. Через делегат, например. Не нравятся мне все эти нереюзабельные слушатели кнопок и мышек.

mr_virtus

Кстати, прочитайте ещё про KeyAdapter и MouseAdapter.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как обработать событие ввода строки в JTextArea / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]