static void onClick(JComponent c, final O runnable) { c.addMouseListener(new MouseAdapter { public void mouseClicked(MouseEvent e) { callF(runnable, e); } }); } // re-interpreted for buttons static void onClick(JButton btn, final O runnable) { onEnter(btn, runnable); }