複数の jtextfield を持つスイングアプリケーションがあります。Enter キーを押すと、タブ キーと同じように次のフォーカス可能なコンポーネントに転送される、Enter キーの機能をどのように置き換えますか? 各jtextfieldにキーリスナーを配置したくありません。
1726 次
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();
ただし、単一の ActionListener をすべての JTextField に登録する必要があります。
于 2012-08-19T00:35:02.423 に答える