// f: voidfunc(float) static JSlider liveSliderZeroToOne(float def, final O f) { final int max = 9999; final JSlider slider = new JSlider(0, max, iround(def*max)); slider.addChangeListener(new ChangeListener { int lastValue = slider.getValue(); public void stateChanged(ChangeEvent e) { int value = slider.getValue(); if (value != lastValue) { lastValue = value; pcallF(f, value/(float) max); } } }); ret slider; }