日期:2014-05-20  浏览次数:20801 次

JScrollBar的问题。

我实现了在label中加了图片,label放在JScrollPanel上,JScrollPanel放在Panel上。。。。
最后是可以出现JScrollBar的。
  《....我想实现的是点击图片放大的效果,点击的位置还在鼠标的位置上。。》
  当我把图片的大小变大,确实是可以实现放大效果,但是,却不能让鼠标在想要的位置上。
试了下,发现主要是bar.setvalue(int);这个值并不能设置进去。

那几个值的大小关系: minimum <= value <= value+extent <= maximum

说明:
我把图片的(width*2,height*2);实现了放大。
把放大的图片放在label上,实现了滚动条的增大。
然后设置了 maximum 为(width*2)的大小,却不能实现让bar.setvalue(int)中的int变的更大。

例如:图片大小800*600的,bar的大小是700*500的。
放大前:min=0,value最大可以达到(800-700=100;),max=800.
我放大后:min=0,value的最大值还只是100,如果我不设置的话,max=800,这样我明白为什么value为100;
可是我把max设置为1600,value的最大值还是100,即使我用bar.setvalue(200),完成后我再用bar.getvalue(),结果还是100,
就是说value的值不能变的比100更大了。


问题完了,请教各位大虾,教我下。。。

------解决方案--------------------
睡一会呗,sleep()
------解决方案--------------------
手头不能调试....lz试试下面几个办法:
1)调用Label的setPreferredSize方法,这个方法主要是用来进行自动排版的...

2)调用scrollPane的validate方法,用来重排的...

3)如果2)起作用了,可是试试看setVerticalScrollPolicy(是不是这个名字我记不清了,应该差不多吧..)让它自己自动排列...