我实现了在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更大了。
问题完了,请教各位大虾,教我下

解决方案 »

  1.   

    我试了几次,发现如果我在bar.setvalue()之前,先间断下。
    即用javax.swing.JOptionPane.showMessageDialog(frame,"test");
    后面加bar.setvalue(int);就可以设置进去了。现在的问题是在程序里面肯定是不能突然冒出个Message的。那该如何让程序等待下呢?
    待解!!!
      

  2.   

    显然不行,sleep了不会给后面的增加时间的。
    并且,我已经测试过了,不行。
    另求解
      

  3.   

    手头不能调试....lz试试下面几个办法:
    1)调用Label的setPreferredSize方法,这个方法主要是用来进行自动排版的...2)调用scrollPane的validate方法,用来重排的...3)如果2)起作用了,可是试试看setVerticalScrollPolicy(是不是这个名字我记不清了,应该差不多吧..)让它自己自动排列...