Вероятно, это происходит потому, что JTable использует F2 для вызова действия StartEditing (я видел такое же поведение в одной из моих программ и проследил его до этого).
Есть несколько решений. Наиболее радикальным является удаление этого сопоставления ввода (я считаю, что этот код фактически удаляет сопоставление из всех JTables):
KeyStroke keyToRemove = KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0);
InputMap imap = table.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
while (imap != null)
{
imap.remove(keyToRemove);
imap = imap.getParent();
}
Или, если вы используете таблицу только для отображения и не планируете позволить пользователю редактировать ее, вы можете сделать ее не фокусируемой:
table.setFocusable(false);
По совершенно другой теме, я настоятельно рекомендую создать подкласс AbstractAction
для элементов меню, а не создавать их "с нуля". Помимо предоставления очень простого кода настройки меню, вы можете использовать один и тот же экземпляр действия как для главного меню, так и для всплывающей панели / панели инструментов, а также включать / отключать их одновременно.