// runnable can be a func(O o) {} receving the selected row index static void onDoubleClickOrEnter(final JTable table, final O runnable) { onDoubleClick(table, runnable); table.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT) .put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "Enter"); table.getActionMap().put("Enter", new AbstractAction() { public void actionPerformed(ActionEvent e) { callF(runnable, table.getSelectedRow()); } }); }