static void onMouseDown(Component c, O r) { if (c != null && r != null) swing { c.addMouseListener(new MouseAdapter { public void mousePressed(MouseEvent e) { if (e.getButton() == MouseEvent.BUTTON1) pcallF(r); } }); } } static MouseAdapter onMouseDown(Component c, IVF1 f) { ret c == null || f == null ?: swing(-> { MouseAdapter ma = new { public void mousePressed(MouseEvent e) { if (e.getButton() == MouseEvent.BUTTON1) f.get(e); } }; c.addMouseListener(ma); ret ma; }); }