static void onChange(JSpinner spinner, O r) { spinner.addChangeListener(changeListener(r)); } static A onChange(A b, O r) { b.addItemListener(itemListener(r)); ret b; } static void onChange(JTextComponent tc, O r) { onUpdate(tc, r); } static void onChange(final JSlider slider, fO r) { swing { slider.addChangeListener(changeListener(r)); } }