Java-添加回车按钮

Java-添加回车按钮,java,swing,button,enter,Java,Swing,Button,Enter,我想在按下Enter按钮时合并两个字符串 此外,当我从文本字段到按钮单击Tab键时,当我按空格键但不按Enter键时,它也会工作。这对Java正常吗 我的代码如下所示: (评论是德语的,如果你不懂德语,你可以忽略它们) 如果要添加“输入事件”,则必须在文本字段中添加键侦听器,侦听输入-键并执行与按下按钮时相同的代码 注意:如果要从文本字段按Enter键,则需要执行此操作。因此,您不需要使用Tab切换到按钮将keyListener添加到您的按钮但是1如下所示: // declare the lis

我想在按下Enter按钮时合并两个字符串

此外,当我从文本字段到按钮单击Tab键时,当我按空格键但不按Enter键时,它也会工作。这对Java正常吗

我的代码如下所示:

(评论是德语的,如果你不懂德语,你可以忽略它们)

如果要添加“输入事件”,则必须在
文本字段中添加
键侦听器
,侦听
输入
-键并执行与按下按钮时相同的代码


注意:如果要从文本字段按Enter键,则需要执行此操作。因此,您不需要使用Tab切换到按钮

将keyListener添加到您的按钮
但是1
如下所示:

// declare the listener
but1.addKeyListener(new KeyListener() {
    // listen to keys
    public void keyPressed(KeyEvent e){
        // find ENTER key press
        if(e.getKeyCode() == KeyEvent.VK_ENTER){
            // do your stuff here!!! :)
        }
    }
}
注意:如果希望在各种元素(如
JTextField
中执行此操作,请不要动态声明侦听器:

如下所示声明
KeyListener

KeyListener listener = new KeyListener() {
    // listen to keys
    public void keyPressed(KeyEvent e){
        // find ENTER key press
        if(e.getKeyCode() == KeyEvent.VK_ENTER){
            // do your stuff here!!! :)
        }
    }
并将其添加到所需的元素中:

but1.addKeyListener(listener);
tfstring.addKeyListener(listener);
这是因为“专注”。您需要为文本字段添加KeyListener

@Override
public void keyTyped(KeyEvent e) {
    recognizeKey(e);
}

@Override
public void keyPressed(KeyEvent e) {
    recognizeKey(e);
}

@Override
public void keyReleased(KeyEvent e) {
    recognizeKey(e);
}
public void recognizeKey(KeyEvent e){
    int keyCode = e.getKeyCode();
    switch(keyCode) {
        case KeyEvent.VK_ENTER:
            //TODO: do something
            break;
        default:
            //TODO: do something
            break;
    }

}
@Override
public void keyTyped(KeyEvent e) {
    recognizeKey(e);
}

@Override
public void keyPressed(KeyEvent e) {
    recognizeKey(e);
}

@Override
public void keyReleased(KeyEvent e) {
    recognizeKey(e);
}
public void recognizeKey(KeyEvent e){
    int keyCode = e.getKeyCode();
    switch(keyCode) {
        case KeyEvent.VK_ENTER:
            //TODO: do something
            break;
        default:
            //TODO: do something
            break;
    }

}