static A onChange(A spinner, O r) {
ret onChange(spinner, toRunnable(r));
}
static A onChange(A spinner, Runnable r) {
if (r != null)
swing { spinner.addChangeListener(changeListener(r)); }
ret spinner;
}
static A onChange(A b, O r) {
swing { b.addItemListener(itemListener(r)); }
ret b;
}
static void onChange(JTextComponent tc, O r) {
onUpdate(tc, r);
}
static A onChange(A slider, fO r) {
swing { slider.addChangeListener(changeListener(r)); }
ret slider;
}
static JComboBox onChange(JComboBox cb, IVF1 f) {
if (f != null) addActionListener(cb, -> f.get(getSelectedItem_typed(cb)));
ret cb;
}
static JComboBox onChange(O r, JComboBox cb) {
ret onChange(cb, r);
}
static JComboBox onChange(JComboBox cb, fO r) {
if (isEditableComboBox(cb))
onChange(textFieldFromComboBox(cb), r);
else
onSelectedItem(cb, voidfunc(S s) { callF(r) });
ret cb;
}