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)); } } // for editable combo boxes static void onChange(JComboBox cb, O r) { if (isEditableComboBox(cb)) onChange(textFieldFromComboBox(cb), r); else onSelectedItem(cb, r); }