void (final @NotNull JTable table, final boolean cycleScrolling, @Nullable JComponent focusParent) { ActionMap actionMap = table.getActionMap(); setupScrollingActions(table, actionMap, cycleScrolling); maybeInstallDefaultShortcuts(table); JComponent target = focusParent == null ? table : focusParent; new TableMoveHomeAction(table).registerCustomShortcutSet(new CustomShortcutSet(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, 0)), table); new TableMoveEndAction(table).registerCustomShortcutSet(new CustomShortcutSet(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, 0)), table); if (!(focusParent instanceof JTextComponent)) { new TableMoveHomeAction(table).registerCustomShortcutSet(CommonShortcuts.getMoveHome(), target); new TableMoveEndAction(table).registerCustomShortcutSet(CommonShortcuts.getMoveEnd(), target); } new TableMoveDownAction(table, cycleScrolling, target).registerCustomShortcutSet(CommonShortcuts.getMoveDown(), target); new TableMoveUpAction(table, cycleScrolling, target).registerCustomShortcutSet(CommonShortcuts.getMoveUp(), target); new TableMovePageUpAction(table).registerCustomShortcutSet(CommonShortcuts.getMovePageUp(), target); new TableMovePageDownAction(table).registerCustomShortcutSet(CommonShortcuts.getMovePageDown(), target); }