我在我的程序中使用了JSlider,并且已经为此实现了一个ChangeListener。没有从JSlider获得价值
public void stateChanged(ChangeEvent e)
{
JSlider source=(JSlider) e.getSource();
frame_value.setText(Integer.toString(source.getValue()));
//Condition to change the frame_no only when user has stopped moving the slider
if (!source.getValueIsAdjusting())
{
frame_no=(int) source.getValue()-1;
if(frame_no<0)
frame_no=0;
}
....
}
发生什么事是,无论何时调用ChangeListener,程序都会跳过if块,然后转到代码。我不明白为什么会发生这种情况。我无法从JSlider获得正确的值。请帮忙!!
PS:我不知道这是否是原因,但是最近我已经设置了JSlider的UI来放置点击它的刻度。我不知道这是否对它负责。下面是代码:
slider.setUI(new MetalSliderUI() {
protected void scrollDueToClickInTrack(int direction) {
int value = HEVC_Analyzer.slider.getValue();
value = this.valueForXPosition(HEVC_Analyzer.slider.getMousePosition().x);
HEVC_Analyzer.slider.setValue(value);
}
});
为了更好地帮助您,请发布[SSCCE](http://sscce.org/)。 –
@AndrewThompson我只在这里发布了问题部分..问题是这部分代码没有执行.. –
*“我只在这里发布了问题部分。”*在你知道答案之前,你怎么知道**代码是问题的原因**?我不打算仔细研究不可编译的代码片段,试图确定在这里是否可能是这种情况,但是你可能会很幸运。否则**发布SSCCE ** –