Search code examples
javajsliderchangelistener

JAVA - remove and copy a ChangeListener from a JSlider


I'm having trouble with a Slider for a Volumecontrol.

Atm I use FloatControl to handle the MasterVolume of an Audioclip, bad for me I need a new ChangeListener for every new AudioClip - so i tried this:

JSlider slider_Vol // the Object i use the whole time
JSlider tempSlider // a temporary used Slider i create in an other function

if (slider_Vol.getChangeListeners() != null)            
  slider_Vol.removeChangeListener(slider_Vol.getChangeListeners()[0]); //Array[0] correct position?

slider_Vol.addChangeListener(tempSlider.getChangeListeners()[0]);

it seems like my If dont work, because there is allready an exceptions for the remove command when the program starts and no changelistener was created.

Any ideas?


Solution

  • try changing the statement to:

    ChangeListener listener;
    if (!slider_Vol.getChangeListeners().length == 0){
        listener = slider_Vol.getChangeListeners()[0]
        slider_Vol.removeChangeListener(slider_Vol.getChangeListeners()[0]);
    } else {
        listener = new ChangeListener[your code];
    }
    slider_Vol.addChangeListener(listener);