JAVA - 从 JSlider 中删除并复制 ChangeListener

JAVA - remove and copy a ChangeListener from a JSlider

我在使用音量控制滑块时遇到问题。

Atm 我使用 FloatControl 来处理 Audioclip 的 MasterVolume,这对我来说很糟糕我需要为每个新的 AudioClip 使用一个新的 ChangeListener - 所以我尝试了这个:

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]);

看来我的If不起作用,因为程序启动时删除命令已经存在异常,并且没有创建changelistener。

有什么想法吗?

尝试将语句更改为:

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);