JAVA - 从JSlider中删除并复制ChangeListener

时间:2015-01-17 12:40:46

标签: java jslider changelistener

我在使用Slider进行音量控制时遇到了问题。

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时,remove命令已经存在异常。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

尝试将语句更改为:

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