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



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

目前可以通过按tab键从一个文本字段移动到另一个文本字段(我认为这是默认的)。我想禁止这种情况,只通过ENTER键转移光标。

我已经尝试了transferfocus(),但输入键不带光标到文本区域。我该如何做到这一点?

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

假设组件按照正常的选项卡顺序一个接一个,您可以编写通用代码:

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 ->右键单击-> goto键按事件

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();
    }   
}

最新更新