static A onClick(A c, IVF1 runnable) { ret onClick(c, (O) runnable); } static A onClick(A c, O runnable) { if (c != null) swing { c.addMouseListener(new MouseAdapter { public void mouseClicked(MouseEvent e) { callF(runnable, e); } }); } ret c; } // re-interpreted for buttons svoid onClick(JButton btn, O runnable) { onEnter(btn, runnable); }