更新JSlider Swing的位置

时间:2009-12-05 07:43:26

标签: java swing jslider

我很抱歉最近发布了大量问题。

我正在尝试让JSlider根据不断更新的变量更新其位置。

setValue(n)方法似乎不起作用。还有其他选择吗?我们将此作为音乐播放器的时间标记。

2 个答案:

答案 0 :(得分:2)

如果您已正确配置了最小值和最大值,setValue()将起作用。 JSlider确实需要重新绘制的机会,因此请确保您没有占用event dispatch thread。如果您的代码响应任何UI事件,那么您就在调度线程上并且应该尽快返回。

在后台线程上执行任何昂贵的计算。网上有很多excellent tutorials

答案 1 :(得分:0)

setValue方法确实有效,所以我会检查你传递给setValue的值是否确实在你配置滑块的最小和最大值范围内(即检查您是否没有传递百分比值而不是整数。)

需要注意的第二件事是:你应该只在事件派发线程上调用setValue。当然,您可以计算在偶数调度线程之外传递给setValue的值,但是对Swing组件中的值的任何更新都应该在偶数调度线程中完成(即使用{{1 }})