如何在拖动jscrollbar句柄时正确更改窗格内容

时间:2015-09-02 15:41:56

标签: java swing jscrollbar

我有一个窗格,其中包含在滚动期间更改的图像内容。内容通过滚轮事件正确更新,因为我实现了一个轮子监听器,它在设置新的滚动值之前重新绘制图像。

但是,当用户使用鼠标拖动滚动条手柄时,手动拖动滚动期间图像内容未更新。所以我实现了一个计时器,它抓取当前滚动值并重新给出新滚动位置的内容。

然而,这个解决方案(尽管调整了10毫秒)会产生跳跃的滚动体验。图像移动(没有必要的图像调整),然后每隔10毫秒在事后得到纠正。

我最初尝试过adjustlistener,但它只在句柄释放后获取事件。如何在jscrollbar句柄拖动期间实时更新窗格内容在滚动条机械开始简单地移动我的内容之前,就好像它是静态图像一样?我可以以某种方式给滚动条机器一个内容已经改变的线索或每次尝试重绘内容的东西吗?或者我可以禁用滚动条移动图像的能力,只需依靠我的计时器来完成它吗?

1 个答案:

答案 0 :(得分:1)

我建议你将一个ChangeListener添加到JScrollBar的模型,一个BounderedRangeModel,然后根据模型的值以及它的最大值和最小值来改变你的图像。如果您正在交换图像,最简单的方法是交换JLabel的ImageIcon。