【问题标题】:Dynamically set the size of buffered image动态设置缓冲图像的大小
【发布时间】:2013-04-16 17:10:41
【问题描述】:

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

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 是我使用getMaximumSize() 方法得到的JFrame 的尺寸

当我打印出d.width/8 的值时,它类似于我无法理解的 268435455。有没有其他方法可以帮助解决

谢谢

【问题讨论】:

  • “动态”这个词的使用让我想知道您是否希望图像在帧被 保持 1/8th of the frame is 调整大小。你呢?

标签: java swing dynamic jframe bufferedimage


【解决方案1】:

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

在调用pack() 方法或setSize() 方法之后,您将使用getSize() 方法得到d。

【讨论】:

  • 感谢您在我调用 pack() 方法后给出的答案,您能否解释一下这个大数字是什么?
【解决方案2】:

您应该使用getSize() 而不是getMaximumSize()

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

getSize() 返回您的 JFrame's 当前大小

Component JavaDocs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多