Получение нескольких выходных строк при попытке скопировать из JTextField на консоль - PullRequest
3 голосов
/ 16 марта 2012

Я работаю над этой программой, которая подключается к удаленному серверу через telnet или SSH (пользователь может выбрать тип подключения), и вывод выводится на консоль (по умолчанию System.out).

Я написал код для записи на JTextField того, что записывалось на консоль.

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

Для моих собственных целей отладки я хотел сначала распечатать на консоли пользовательский ввод, чтобы убедиться, что я отправляю правильные данные.

У меня здесь есть небольшой фрагмент кода ..

// jtxt is a JTextField i defined earler in code
// and the variable J is a String.

jtxt.addKeyListener(new KeyAdapter() {
    public void keyTyped(KeyEvent ke) {
        if (ke.getKeyChar() == ke.VK_ENTER) {

            j = jtxt.getText();
            System.out.println(j);
        }
    }
});

Единственная проблема, с которой я столкнулся, это то, что я сам проверил это, и у моей jtextarea был текст "admin", поэтому string j = "admin" но всякий раз, когда я выводил его на экран, он печатал как миллион слов "admin" ». Есть идеи? Кстати, нет петли даже рядом с addKeyListener.

1 Ответ

0 голосов
/ 21 марта 2012

Проблема в том, что пользователь слишком долго удерживает клавишу ввода. Ваш компьютер перепроверяет keyTyped (), пока текущее нажатие клавиши все еще происходит. Измените имя метода с keyTyped на keyReleased. Это должно исправить вашу ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...