Запарила одна штука - когда в JTable нажимаешь любую клавишу (кроме стрелок), начинается редактирование. Например, в приложении настроено сочетание клавиш Control+S для сохранения, но если вы находитесь в таблице, то сохраниться не удастся - таблицы перехватывает все события. Чтобы этого не происходило, нужно зайти в метод JTable.processKeyBinding и найти флаг JTable.autoStartsEdit (мля, как я люблю эти хитрые флаги). Теперь поняли как это работает?
table.putClientProperty("JTable.autoStartsEdit", Boolean.FALSE);
Теперь все шорткаты в ваших руках :)
Да, после того, как вы сделаете то, что написано выше, редактировать можно будет по нажатии F2. Если вы хотите изменить и это, пишем следующее:
Action action = table.getActionMap().get("startEditing"); if (action != null) { table.getInputMap().put(KeyStroke.getKeyStroke("mykey"), "startEditing"); }
Спросите, откуда я такой умный? Посмотрите в класс BasicTableUI, там описаны все действия по умолчанию для таблиц, к сожалению, все константы приватные, так что хардкодим и радуемся.