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键执行操作的代码。