e612. Moving the Focus to the Next or Previous Focusable Component
Posted borter
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了e612. Moving the Focus to the Next or Previous Focusable Component相关的知识,希望对你有一定的参考价值。
The methods to move the focus to the next or to the previous focusable component are Component.transferFocus()
and Component.transferFocusBackward()
.
This example modifies a component so that pressing the space bar or pressing F2 moves the focus to the next focusable component. Pressing shift space or shift F2 moves the focus to the previous focusable component.
// Bind space and shift space component.getInputMap(JComponent.WHEN_FOCUSED).put( KeyStroke.getKeyStroke("SPACE"), nextFocusAction.getValue(Action.NAME)); component.getInputMap(JComponent.WHEN_FOCUSED).put( KeyStroke.getKeyStroke("shift SPACE"), prevFocusAction.getValue(Action.NAME)); // This key binding is required for text components. It hides the // default typed space key binding in a text component. If you don‘t // hide this key binding, typing the space key will insert a space into // the text component (as well as move the focus). // See e1003 覆盖一些和JTextComponent绑定的键 for more details. component.getInputMap(JComponent.WHEN_FOCUSED).put( KeyStroke.getKeyStroke(new Character(‘ ‘), 0), "unbound"); // Bind F2 and shift F2 component.getInputMap(JComponent.WHEN_FOCUSED).put( KeyStroke.getKeyStroke("F2"), nextFocusAction.getValue(Action.NAME)); component.getInputMap(JComponent.WHEN_FOCUSED).put( KeyStroke.getKeyStroke("shift F2"), prevFocusAction.getValue(Action.NAME)); // Add actions component.getActionMap().put(nextFocusAction.getValue(Action.NAME), nextFocusAction); component.getActionMap().put(prevFocusAction.getValue(Action.NAME), prevFocusAction); // The actions public Action nextFocusAction = new AbstractAction("Move Focus Forwards") { public void actionPerformed(ActionEvent evt) { ((Component)evt.getSource()).transferFocus(); } }; public Action prevFocusAction = new AbstractAction("Move Focus Backwards") { public void actionPerformed(ActionEvent evt) { ((Component)evt.getSource()).transferFocusBackward(); } };
Related Examples |
以上是关于e612. Moving the Focus to the Next or Previous Focusable Component的主要内容,如果未能解决你的问题,请参考以下文章
e606. Determining Which Component or Window Has the Focus
e611. Setting Focus Traversal Keys for the Entire Application
e618. Validating a JTextField When Permanently Losing the Focus
e617. Determining the Opposite Component of a Focus Event
e620. Activating a Keystroke When Any Component in the Window Has Focus
e609. Listening to All Focus Changes Between Components in an Application