Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按Enter键将光标从一个JTextField转移到另一个JTextField?_Java_Swing_Focus_Awt_Focusmanager - Fatal编程技术网

Java 按Enter键将光标从一个JTextField转移到另一个JTextField?

Java 按Enter键将光标从一个JTextField转移到另一个JTextField?,java,swing,focus,awt,focusmanager,Java,Swing,Focus,Awt,Focusmanager,我有一个JTextField名和一个JTextArea名地址。我的要求是,当用户在JTextField中输入名称并按下Enter键时,光标应转到下一个文本区域,即地址 目前,可以通过按tab键(我认为这是默认设置)从一个文本字段移动到另一个文本字段。我想禁止此操作,并仅通过ENTER键传输光标 我尝试了transferfocus(),但enter键无法将光标移到文本区域。我如何做到这一点 我的要求是,当用户在JTextField中输入名称并按下enter键时,光标应转到下一个文本区域,即Addr

我有一个
JTextField
名和一个
JTextArea
名地址。我的要求是,当用户在
JTextField
中输入名称并按下Enter键时,光标应转到下一个文本区域,即地址

目前,可以通过按tab键(我认为这是默认设置)从一个文本字段移动到另一个文本字段。我想禁止此操作,并仅通过ENTER键传输光标

我尝试了
transferfocus()
,但enter键无法将光标移到文本区域。我如何做到这一点

我的要求是,当用户在JTextField中输入名称并按下enter键时,光标应转到下一个文本区域,即Address

假设组件按照正常的选项卡顺序彼此跟随,则可以编写常规代码:

Action enterAction = new AbstractAction()
{
    @Override
    public void actionPerformed(ActionEvent e)
    {
        KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
        manager.getFocusOwner().transferFocus();
    }
}

...

textField.addActionListener( enterAction );
目前,可以通过按tab键(我认为这是默认设置)从一个文本字段移动到另一个文本字段。我想禁止此操作,并仅通过ENTER键传输光标


你为什么要禁止这种行为。正如您所说,选项卡是默认的,因此大多数用户都熟悉这种方法。不要重新设计UI,给用户一个选择。

我认为您使用的是Swing..很抱歉回复太晚

JTextField->右键单击->转到按键事件

private void NameKeyPressed(java.awt.event.KeyEvent evt) {
        int a = evt.getKeyCode();
        if (a == 10) {                     // for enter key
          Address.requestFocus();
        } 
}

@satya的答案是正确的,但是为了避免出现幻数,有一个小小的改动:

private void jTextFieldItmCodeKeyPressed(java.awt.event.KeyEvent evt) {                                             
    if(evt.getKeyCode()==KeyEvent.VK_ENTER){
       Address.requestFocus();
    }   
}

您是否尝试过“RequestFocus()”?向我们展示您的捕获代码以及按ENTER键执行操作的代码。