JtextArea прокрутка текста вверх на одну страницу

У меня есть JtextArea (в scrollPane), в котором у меня есть 20 строк текста.

Емкость отображения textArea составляет 10 строк.

Мне нужно переместить 20 строк текста вверх на одну страницу, оставив пустой экран для ввода, если пользователь нажмет Enter. Поэтому, если пользователь прокручивает вверх, он сможет увидеть 20 строк.

Функциональность аналогична команде clear в Linux, которая перемещает все содержимое на одну страницу вверх.

Как я могу добиться этого в JtextArea?

Пожалуйста помоги.


person madhu    schedule 08.05.2014    source источник
comment
Вы проверили stackoverflow.com/questions/5147768/   -  person Hirak    schedule 08.05.2014


Ответы (1)


Попробуйте добавлять \ n * 20 раз каждый раз, когда пользователь нажимает клавишу ввода. Вы можете сделать это, реализовав KeyListener, но некоторые не согласятся использовать KeyListener, я не понимаю, почему бы и нет.

jTextArea.addKeyListener(new KeyAdapter() {
            public void keyReleased(KeyEvent evt) {
                if (evt.getKeyCode() == KeyEvent.VK_ENTER)
                    for (int i = 0; i < 20; i++)
                       jTextArea.append("\n");
            }
        });
person fasaas    schedule 08.05.2014
comment
если (evt.getKeyCode () == KeyEvent.VK_ENTER) неверно, кстати, ENTER реализован в JTextArea в API, - person mKorbel; 08.05.2014
comment
I do not see why not., потому что Swing был разработан для использования с Key Bindings, который является API более высокого уровня. Всегда лучше использовать API более высокого уровня, если он доступен, чтобы вы не зависели от событий низкого уровня. - person camickr; 08.05.2014