我很抱歉最近发布了大量问题。
我正在尝试让JSlider根据不断更新的变量更新其位置。
setValue(n)方法似乎不起作用。还有其他选择吗?我们将此作为音乐播放器的时间标记。
答案 0 :(得分:2)
如果您已正确配置了最小值和最大值,setValue()
将起作用。 JSlider
确实需要重新绘制的机会,因此请确保您没有占用event dispatch thread。如果您的代码响应任何UI事件,那么您就在调度线程上并且应该尽快返回。
在后台线程上执行任何昂贵的计算。网上有很多excellent tutorials。
答案 1 :(得分:0)
setValue
方法确实有效,所以我会检查你传递给setValue
的值是否确实在你配置滑块的最小和最大值范围内(即检查您是否没有传递百分比值而不是整数。)
需要注意的第二件事是:你应该只在事件派发线程上调用setValue
。当然,您可以计算在偶数调度线程之外传递给setValue
的值,但是对Swing组件中的值的任何更新都应该在偶数调度线程中完成(即使用{{1 }})