### Component Keystroke Actions for the Metal L&F

This page gives the Metal Look&Feel keystroke-actions for:

- The Applet Component
- Standard Components
- Structured Components
- Menu, Toolbar, and Tooltip Components
- Text Components
- Containers: Frames, Windows, Panes, and Icons

Note:
Where the implementation occurs in other than the obvious Look and Feel (L&F) class, the implementing class is shown in parentheses. For example: (DefaultFocusManager). Currently implemented keystrokes that are not to spec are shown in ALL CAPS.

###

### The Applet Component

Component | Action | Intended Key | Implemented
JApplet (Metal L&F) | Navigate out forward | Tab | yes (DefaultFocusManager)
Naviage out backward | Shift+Tab | yes (DefaultFocusManager)
Activate the default button (if defined) | Enter | yes (JRootPane)

###

### Standard Components

Component | Action | Intended Key | Implemented
JButton (Metal L&F) | Navigate forward | Tab | yes (DefaultFocusManager)
Navigate backward | Shift+Tab | yes (DefaultFocusManager)
Activate | Enter |
Spacebar | yes (BasicButtonListener)
Alt+Char accelerator key, if defined | yes (JButton)

Component | Action | Intended Key | Implemented
JCheckBox (Metal L&F) | Navigate forward | Tab | yes (DefaultFocusManager)
Navigate backward | Shift+Tab | yes (DefaultFocusManager)
Navigate within group | arrow keys |
Check | Spacebar | yes (BasicButtonListener)
Uncheck

Component | Action | Intended Key | Implemented
JRadioButton (Metal L&F) | Navigate forward | Tab | yes (DefaultFocusManager)
Navigate backward | Shift+Tab | yes (DefaultFocusManager)
Navigate within group (Navigating to a radio button selects it) | arrow keys |
Check | Spacebar | yes (BasicButtonListener)
Uncheck

Component | Action | Intended Key | Implemented
JToggleButton (Metal L&F) | Navigate forward | Tab | yes (DefaultFocusManager)
Navigate backward | Shift+Tab | yes (DefaultFocusManager)
Navigate within group | arrow keys |
Check | Spacebar | yes (BasicButtonListener)
Uncheck

Component | Action | Intended Key | Implemented
JComboBox (Metal L&F) | Navigate out forward | Tab | yes (DefaultFocusManager)
Navigate out backward | Shift+Tab | yes (DefaultFocusManager)
Post menu | Alt+Down | yes (JComboBox)
Retract menu | Esc, Alt+Up | yes (JComboBox)
Toggle menu up or down | Alt+Up Alt+Down | yes (JComboBox)
Spacebar | yes
Select entry with matching initial character (if not editable) | any char | yes
Move up or down | Up, Down | yes
Other navigation keys?? | See JList
Edit field | See JTextField |
Activate selection | Enter | yes (JComboBox)

Component | Action | Intended Key | Implemented
JList (Metal L&F) | Navigate out forward | Tab | yes (DefaultFocusManager)
Navigate out backward | Shift+Tab | yes (DefaultFocusManager)
Activate selection | Enter |
Move within list | Up, Down | yes (JList)
Block move | PgUp, PgDn |
To beginning of list | Home |
To end of list | End |
Select all entries | Ctrl+A |
Select an additional item | Ctrl+Spacebar |
Range select | Shift+Spacebar |
Extend selection range up | Shift+Up |
Extend selection range down | Shift+Down |
Extend selection range to top | Shift+Home |
Extend selection range to end | Shift+End |
Block extend up | Shift+PgUp |
Block extend down | Shift+PgDn |

Component | Action | Intended Key | Implemented
JSlider (Metal L&F) | Navigate out forward | Tab | yes (DefaultFocusManager)
Navigate out backward | Shift+Tab | yes (DefaultFocusManager)
Increase value | Up, Right | yes
Decrease value | Left, Down | yes
Minimum value | Home | yes
Maximum value | End | yes
Block increase | PgUp | yes
Block decrease | PgDn | yes

Component | Action | Intended Key | Implemented
JSpinner (Metal L&F) Not Yet Released | Navigate out forward | Tab | yes (DefaultFocusManager)
Navigate out backward | Shift+Tab | yes (DefaultFocusManager)
Change value | Up, Down | yes

Component | Action | Intended Key | Implemented
JStringSpinner (Metal L&F) Not Yet Released | Navigate out forward | Tab | yes (DefaultFocusManager)
Navigate out backward | Shift+Tab | yes (DefaultFocusManager)
Change value | Up, Down | yes

### Structured Components

Component | Action | Intended Key | Implemented
JTable (Metal L&F) | Navigate out forward | Ctrl+Tab |
Navigate out backward | Ctrl+Shift+Tab |
Move to next cell (wrap to next row) | Tab |
Right | yes
Move to previous cell (wrap to previous row) | Shift+Tab |
Left | yes
Move to cell above | Shift+Enter |
Up | yes
Move to cell below | Enter |
Down | yes
Block move vertical | PgUp, PgDn |
Block move left | Ctrl+PgUp |
Block move right | Ctrl+PgDn |
Move to first cell in row | Home |
Move to last cell in row | End |
Move to first cell in table | Ctrl+Home |
Move to last cell in table | Ctrl+End |
Select all cells | Ctrl+A |
Select a non-contiguous row | -none- |
Range-select | -none- |
Extend selection one row | Shift+Up, Shift+Down |
Extend selection one column | Shift+Left, Shift+Right |
Extend selection to first/last column | Shift+Home, Shift+End |
Extend selection to first/last row | -none- |
Extend selection to first/last cell | Ctrl+Shift+Home, Ctrl+Shift+End |
Block extend vertical | Shift+PgUp, Shift+PgDn |
Block extend left | Ctrl+Shift+PgUp |
Block extend right | Ctrl+Shift+PgDn |
Begin editing cell | ??? |
Edit cell | See JTextField |

Component | Action | Intended Key | Implemented
JTree (Metal L&F) | Navigate out forward | Tab | yes (DefaultFocusManager)
Navigate out backward | Shift+Tab | yes (DefaultFocusManager)
Expand entry | Right | yes (JTree)
Collapse entry | Left | yes (JTree)
Toggle expand/collapse for entry | Enter | yes (JTree)
Expand all entries | -none- | n/a
Collapse all entries | -none- | n/a
Move up/down one entry | Up, Down | yes (JTree)
Move to first entry | Home | yes (JTree)
Move to last entry | End | yes (JTree)
Block move vertical | PgUp, PgDn | yes (JTree)
Block move left | Ctrl+PgUp |
Block move right | Ctrl+PgDn |
Select all | Ctrl+A |
Single select | Ctrl+Spacebar |
Range-select | Shift+Spacebar |
Extend selection up | Shift+Up |
Extend selection down | Shift+Down |
Extend selection to start of data | Shift+Home |
Extend selection to end of data | Shift+End |
Block extend vertical | Shift+PgUp, Shift+PgDn |
| Edit cell | See JTextField |

### Menu, Toolbar, and ToolTip Components

Component | Action | Intended Key | Implemented
JMenuBar (Metal L&F) | Navigate out | Esc | yes (JMenuBar)
Select first item (if no item selected) | F10 |
Select next item | Right | yes (JMenuBar)
Select previous item | Left | yes (JMenuBar)
Post menu | Up, Down |
Enter | yes
Spacebar | yes (BasicButtonListener)
Alt+Char accelerator key, if defined | yes

Component | Action | Intended Key | Implemented
JMenu (Metal L&F) | Move to next item (wrap to top) | Down | yes
Move to previous item (wrap to bottom) | Up | yes
Retract menu | Esc | yes

Component | Action | Intended Key | Implemented
JMenuItem (Metal L&F) | Activate item | Enter | yes
Spacebar | yes (BasicButtonListener)
Alt+Char accelerator key, if defined | yes (JMenuItem)
Post submenu | Right | yes
Retract submenu | Left | yes
Esc | yes

Component | Action | Intended Key | Implemented
JCheckBoxMenuItem (Metal L&F) | Check/Uncheck item (and retract menu) | See JMenuItem, "Activate item"

Component | Action | Intended Key | Implemented
JRadioButtonMenuItem (Metal L&F) | Check/Uncheck item (and retract menu) | See JMenuItem, "Activate item"

Component | Action | Intended Key | Implemented
JPopupMenu (Metal L&F) | Post menu | Shift+F10 |
Retract menu | Esc | yes
Move within menu | Up, Down | yes
Post submenu | Right | yes
Close submenu | Left | yes
Activate entry | Enter | yes
Spacebar | yes (BasicButtonListener)

Component | Action | Intended Key | Implemented
JToolBar (Metal L&F) | Navigate out forward | ?? Tab |
Navigate out backward | ?? Shift+Tab |
Select first item (if not in toolbar) | ?? -none- (must exist for key-navigation to be possible) |
Select next item | ?? Right |
Select previous item | ?? Left |
Activate item | ?? Enter |

Component | Action | Intended Key | Implemented
JToolTip (Metal L&F) | Post tip | Ctrl+F1 |
Retract tip | Esc, Ctrl+F1 |

### Text Components

Component | Action | Intended Key | Implemented
JTextField (Metal L&F) | Navigate in | Alt+Char accelerator key, if defined | yes (JTextField)
Navigate out forward | Tab | yes (DefaultFocusManager)
Navigate out backward | Shift+Tab | yes (DefaultFocusManager)
Move to prev/next char | Left, Right | yes (JTextComponent)
Move to prev/next word | Ctrl+Left, Ctrl+Right | no
Move to start/end of field | Home/End | yes (JTextComponent) CTRL+LEFT, CTRL+RIGHT (BasicTextUI)
Submit entry | Enter | yes
Select all | Ctrl+A |
Deselect all | arrow keys |
Extend selection left/right | Shift+Left, Shift+Right | yes (BasicTextUI)
Extend selection to start/end | Shift+Home, Shift+End |
Extend selection to prev/next word | Ctrl+Shift+Left, Ctrl+Shift+Right |
Copy selection | Ctrl+C | yes (BasicTextUI)
Cut selection | Ctrl+X | yes (BasicTextUI)
Paste | Ctrl+V | yes (BasicTextUI)
Delete next character | Delete |
Delete previous character | Backspace | yes (JTextComponent)

Component | Action | Intended Key | Implemented
JPasswordField (Metal L&F) | Navigate, move within the field, and select | See JTextField
??Selection allowed?? |  |

Component | Action | Intended Key | Implemented
JTextArea (Metal L&F) | Navigate in | Alt+Char accelerator key, if defined | yes (JTextArea)
Navigate out forward | Ctrl+Tab |
Navigate out backward | Ctrl+Shift+Tab |
Move up/down one line | Up, Down | yes (JTextComponent)
Move left/right one char | Left, Right | yes (JTextComponent)
Block move up/down | PgUp, PgDn | yes
Block move left | Ctrl+PgUp |
Block move right | Ctrl+PgDn |
Move to start/end of line | Home, End | no
Move to prev/next word | Ctrl+Left, Ctrl+Right | no
Move to start/end of text area | Ctrl+Home, Ctrl+End | HOME, END (JTextComponent) CTRL+LEFT, CTRL+RIGHT (BasicTextUI)
Select all | Ctrl+A |
Deselect all | arrow keys |
Extend selection up/down | Shift+Up, Shift+Down |
Extend selection left/right | Shift+Left, Shift+Right | yes (BasicTextUI)
Extend selection to start/end of line | Shift+Home, Shift+End |
Extend selection to start/end of text area | Ctrl+Shift+Home, Ctrl+Shift+End |
Extend selection to prev/next word | Ctrl+Shift+Left, Ctrl+Shift+Right |
Block extend up | Shift+PgUp |
Block extend down | Shift+PgDn |
Block extend left | Ctrl+Shift+PgUp |
Block extend right | Ctrl+Shift+PgDn |
Copy selection | Ctrl+C | yes (BasicEditorPaneUI)
Cut selection | Ctrl+X | yes (BasicEditorPaneUI)
Paste | Ctrl+V | yes (BasicEditorPaneUI)
Delete next character | Delete | yes (JTextComponent)
Delete previous character | Backspace | yes (JTextComponent)
Insert line break | Enter | yes
Insert tab | Tab | yes

Component | Action | Intended Key | Implemented
JTextPane (Metal L&F) | Navigate, move, select | See JTextArea

Component | Action | Intended Key | Implemented
JEditorPane (Metal L&F) | Navigate, move, select | See JTextArea
Move to next/prev HTML link or other focusable element | Tab, Shift+Tab |
Move out of focusable elements that accept a tab | Ctrl+Tab, Ctrl+Shift+Tab |
Activate an HTML link | Enter |

### Containers: Frames, Windows, Panes, and Icons

Component | Action | Intended Key | Implemented
JDesktopPane (Metal L&F) | Navigate forward among open application windows, then desktop icons | Ctrl+Alt+F6 Alt+Tab Alt+Esc |
Navigate backward among open application windows, then desktop icons | Ctrl+Alt+Shift+F6 Alt+Shift+Tab |
Navigate forward among open associated windows | Ctrl+F6 Alt+F6 |
Navigate backward among open associated windows | Ctrl+Shift+F6 Alt+Shift+F6 |
Post menu of window-options | Shift+Esc Ctrl+Spacebar Alt+Spacebar |
Open window (when iconized) | Enter |

Component | Action | Intended Key | Implemented
JDirectoryPane (Metal L&F) | Navigate out forward | Tab | yes (DefaultFocusManager)
Navigate out backward | Shift+Tab | yes (DefaultFocusManager)
Open file | Enter |
Move up/down one entry | Up, Down |
Move left/right one column | Left, Right |
Block move | PgUp, PgDn |
Block move left | Ctrl+PgUp |
Block move right | Ctrl+PgDn |
Move to first item in view | -none- |
Move to last item in view | -none- |
Move to first data item | Ctrl+Home |
Move to last data item | Ctrl+End |
Move to first column | Home |
Move to last column | End |
Select all | Ctrl+A |
Deselect all | arrow keys |
Select an item | Spacebar |
Add to selection (single) | Ctrl+Spacebar |
Range select | Shift+Spacebar |
Extend selection up/down | Shift+Up, Shift+Down |
Extend selection to start/end of line | Shift+Home, Shift+end |
Extend selection to start/end of data | Ctrl+Shift+Home, Ctrl+Shift+End |
Extend selection left/right | Shift+Left, Shift+Right |
Block extend up | Shift+PgUp |
Block extend down | Shift+PgDn |
Block extend left | Ctrl+Shift+PgUp |
Block extend right | Ctrl+Shift+PgDn |

Component | Action | Intended Key | Implemented
JOptionPane (Metal L&F) | Navigate out | Alt+F6 |
Retract dialog | Esc |
Activate the default button (if defined) | Enter | yes (JRootPane)

Component | Action | Intended Key | Implemented
JDialog (Metal L&F) | Navigate out | Alt+F6 |
Retract dialog | Esc |
Activate the default button (if defined) | Enter | yes (JRootPane)

Component | Action | Intended Key | Implemented
JScrollPane (Metal L&F) | Navigate out forward | Tab | yes (DefaultFocusManager)
Navigate out backward | Shift+Tab | yes (DefaultFocusManager)
Move up/down | Up, Down |
Move lerft/right | Left, Right |
Block move up/down | PgUp, PgDn |
Move to start/end of data | Ctrl+Home, Ctrl+End |
Block move right | Ctrl+PgDn |
Block move left | Ctrl+PgUp |

Component | Action | Intended Key | Implemented
JSplitPane (Metal L&F) | Navigate out forward | Ctrl+Tab |
Navigate out backward | Ctrl+Shift+Tab |
Move between panes | Tab, F6 |
Move to splitter bar | F8 |
Resize pane vertical | Up, Down |
Resize pane horizontal | Left, Right |
Resize to min/max | Home, End |

Component | Action | Intended Key | Implemented
JTabbedPane (Metal L&F) | Navigate out | Ctrl+Tab |
Move to tab left/right | Left, Right | yes (JTabbedPane)
Move to tab above/below | Up, Down | yes (JTabbedPane)
Move from tab to page | Enter, Ctrl+Down |
Move from page to tab | Ctrl+Up |
Move from page to prev page | Ctrl+PgUp |
Move from page to next page | Ctrl+PgDn |

Component | Action | Intended Key | Implemented
JFrame (Metal L&F) | Navigate out | Alt+Esc |
Display window menu | Alt+Spacebar |
Activate the default button (if defined) | Enter | yes (JRootPane)

Component | Action | Intended Key | Implemented
JInternalFrame (Metal L&F) | Open (Restore) | Ctrl+F5 Alt+F5 Enter |
Close | Ctrl+F4 Alt+F5 |
Move | Ctrl+F7 Alt+F7 |
Resize | Ctrl+F8 Alt+F78 |
Minimize | Ctrl+F9 Alt+F9 |
Display window menu | Alt+Spacebar |
Activate the default button (if defined) | Enter | yes (JRootPane)

Component | Action | Intended Key | Implemented
JWindow (Metal L&F) | Activate the default button (if defined) | Enter | yes (JRootPane)