Java 获取试图从JTextField复制到控制台的多个输出字符串

Java 获取试图从JTextField复制到控制台的多个输出字符串,java,swing,Java,Swing,我正在开发这个程序,它通过telnet或SSH连接到远程服务器(用户可以选择哪种连接类型),并且输出显示在控制台上(默认System.out) 我编写代码,将写入控制台的内容写入JTextField 接下来我想做的是尝试使用户也可以通过JTextArea输入自己的命令,并且每当他们按enter键时,他们键入的代码都会被发送出去 出于我自己的调试目的,我想先将用户输入打印到控制台,以确保发送的数据正确 我这里有一个小代码片段 // jtxt is a JTextField i defined ea

我正在开发这个程序,它通过telnet或SSH连接到远程服务器(用户可以选择哪种连接类型),并且输出显示在控制台上(默认
System.out

我编写代码,将写入控制台的内容写入
JTextField

接下来我想做的是尝试使用户也可以通过
JTextArea
输入自己的命令,并且每当他们按enter键时,他们键入的代码都会被发送出去

出于我自己的调试目的,我想先将用户输入打印到控制台,以确保发送的数据正确

我这里有一个小代码片段

// 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附近也没有循环

问题是用户按住enter键的时间太长。您的计算机正在重新检查keyTyped(),而当前按键仍在进行。将方法名称从keyTyped更改为keyReleased。这将修复您的错误。

最近有人问了这个问题(或者至少是一个非常类似的问题),并在这里得到了回答:。调试器是您最好的朋友!在println上放置一个断点并检查我们正在发生的事情-有一点是肯定的,代码总是(或通常是)正确的。1)而不是这一个的
keylister
。2) 你确定“一百万”实际上不是5吗?3) 为了更快地获得更好的帮助,请发布一个。