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 A onChange(A b, Runnable r) {
swing { b.addItemListener(itemListener(r)); }
ret b;
}
svoid onChange(JTextComponent tc, O r) {
onUpdate(tc, r);
}
svoid onChange(JTextComponent tc, Runnable r) {
onUpdate(tc, r);
}
static A onChange(A slider, Runnable r) {
ret onChange(slider, (O) r);
}
static A onChange(A slider, O r) {
swing { slider.addChangeListener(changeListener(r)); }
ret slider;
}
static JComboBox onChange(JComboBox cb, Runnable r) {
addActionListener(cb, r);
ret cb;
}
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;
}
static A onChange(A tabs, Runnable r) {
swing { tabs.addChangeListener(changeListener(r)); }
ret tabs;
}
static A onChange(Runnable r, A cc) {
if (cc != null && r != null) swing {
cc.getSelectionModel().addChangeListener(changeListener(r));
}
ret cc;
}
svoid onChange(IHasChangeListeners a, ChangeTriggerable b) {
if (a != null && b != null) a.onChange(new ChangeTrigger(b));
}
svoid onChange(IHasChangeListeners a, Runnable r) {
if (a != null && r != null) a.onChange(r);
}