Moving the Focus with the TAB Key in a JTextArea Component

By default, typing TAB in a JTextArea inserts a TAB character. This example demonstrates how to modify the behavior so that typing TAB moves the focus to the next focusable component.

Rather than try to find the inputmap or keymap with the TAB binding and remove it, it is better to add an overriding key binding that will move the focus. The reason is that the location of the default TAB binding might change in some future version.

JTextArea component = new JTextArea(); // 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(); } };

Post a comment

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image. Ignore spaces and be careful about upper and lower case.