2

我有一个带有多个 jtextfield 的摇摆应用程序。你如何替换回车键的功能,当你按下回车键时,它会像 tab 键一样转移到下一个焦点组件?我不想在每个 jtextfield 上放置一个 keylistener。

4

2 回答 2

5

您正在寻找Container.setFocusTraversalKeys

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

有关更多信息,请查看Focus Subsystem 教程

于 2012-08-19T00:35:59.320 回答
2

您可以致电:

KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
manager.focusNextComponent();

但是您必须在所有 JTextField 中注册一个 ActionListener。

于 2012-08-19T00:35:02.423 回答