如何在Java中捕获Enter键并将事件更改为Tab

如何在Java中捕获Enter键并将事件更改为Tab,java,swing,keylistener,Java,Swing,Keylistener,我有一个swing应用程序,上面有多个jtextfield。如何替换enter键的功能,当按下enter键时,它将像tab键一样转移到下一个可聚焦组件?我不想在每个jtextfield上都放一个keylistener 您可以拨打: KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager(); manager.focusNextComponent(); 但您必须在所有JTextField

我有一个swing应用程序,上面有多个jtextfield。如何替换enter键的功能,当按下enter键时,它将像tab键一样转移到下一个可聚焦组件?我不想在每个jtextfield上都放一个keylistener

您可以拨打:

KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
manager.focusNextComponent();
但您必须在所有JTextFields中注册一个ActionListener。

您正在寻找:

容器根=。。。
//按TAB键,控制按TAB键

设置。

是否确实要替换默认操作(即通知其操作/侦听器,又称:提交)?或者commit+focusTransfer?我希望我的程序发生的是,在我用该字段所需的数据填充jtextfield后,我将按enter键,然后焦点将跳转到第二个jtextfield上(我将其指定为下一个可聚焦组件),就像按tab键一样。
Container root = ...
// pressed TAB, control pressed TAB
Set<AWTKeyStroke> defaultKeys = root.getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS);
// since defaultKeys is unmodifiable
Set<AWTKeyStroke> newKeys = new HashSet<>(defaultKeys); 
newKeys.add(KeyStroke.getKeyStroke("pressed ENTER"));
root.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, newKeys);