动态设置缓冲图像的大小

时间:2013-04-16 17:10:41

标签: java swing dynamic jframe bufferedimage

我用它来设置我的缓冲图像的大小。

Dimension imgDim = new Dimension(700, 380);

BufferedImage gridImage = new BufferedImage(imgDim.width, imgDim.height,
    BufferedImage.TYPE_INT_RGB);

而不是这个,我想用以下内容设置图像的大小:

Dimension imgDim = d;

BufferedImage gridImage = new BufferedImage(d.width/8, d.height/8,
    BufferedImage.TYPE_INT_RGB);

但我得到了negativeArraySizeException

d是我使用JFrame方法获得的getMaximumSize()的维度

当我打印出d.width/8的值268435455时,我无法理解。是否有其他方法可以帮助

谢谢

2 个答案:

答案 0 :(得分:1)

  

d是我使用getMaximumSize()方法获取的JFrame的尺寸

在调用getSize()方法或pack()方法后,您可以使用setSize()方法

答案 1 :(得分:0)

您应该使用getSize()代替getMaximumSize()

如果setPreferredSize没有JFramegetMaximumSize()将返回一个非常大的数字。见Component.getMaximumSize()

getSize()会返回JFrame's当前尺寸

请参阅Component JavaDocs