我正在使用 jlGUI 和 jAudiotagger 库创建一个简单的媒体播放器。
随着播放的进行,我使用 JSlider 实现了一个自动移动的指示器。
现在,我必须通过注册该滑块来生成事件来实现通过拖动来查找文件。
所以问题是,当注册搜索器时,滑块的自动搜索(在播放时)也会导致一个ChangeEvent,所以它一次又一次地寻找到自己的位置。
我该如何实施?
如何创建一个ChangeListener
允许您通过方法调用打开和关闭它的方法?
因此,当您处于动画模式时,它会忽略stateChanged()
事件。
当用户单击JSlider
(用 识别MouseListener
)时,停止动画并调用MyChangeListener.setAnimationMode(false)
,以便您的侦听器对用户交互做出反应。
public class MyChangeListener implements ChangeListener
{
boolean animationMode = true;
public void setAnimationMode( boolean mode )
{
this.mode = true;
}
@Override
public void stateChanged(ChangeEvent arg0)
{
if ( !animationMode )
{
// do stuff
}
}
}