我用java awt 写了一个图片加载的代码,但现在有个问题如下:
因为我要把图片显示在750*550之间,所以在加载图片的时候,我这样的
g.drawImage(img, 0, 0, 750, 550,srcRect.x, srcRect.y, srcRect.x+srcRect.width, srcRect.y+srcRect.height, null);
我有个图片是1280*960 的,把它加载进来,能正常显示在750*550之间,没任何问题
当我“正向旋转90度”后,也就是原来的宽和高调了位置,这个时候
发现旋转后的图片就有问题了,问题是宽度没有750了,而是490左右,足足少了260的宽度,导致部分图片没显示出来
但是,高度还是550,这个是没问题的。
这个时候,我手工用鼠标把窗口最小化,然后再在工具栏上点下这个窗口,它再次展现给我看的时候,图片又正常了,宽度又恢复到750了,这让我郁闷死了,找不到为什么,请求帮助,我怀疑是图片绘制的时候,paint(),repaint()。方法少调用了。

解决方案 »

  1.   

    可能你没有调用它的父成员的invalidate方法,导致它并没有重画整个画布
      

  2.   

    invalidate 这个方法怎么用哦,请举个例子哦,谢谢
      

  3.   

    可能你没有调用它的父成员的invalidate方法,导致它并没有重画整个画布
      

  4.   

    我以前用java写过一个指针转盘。也出现过LZ类似的问题。
    的确是一个少调用了一个刷新的方法。具体是哪个这下子想不起了。你可以搜索个例子看看。
      

  5.   

    就是invalidate或者repaint之类啊
    jframe.invalidate();
    jframe.repaint();