'
immagineRegistrati = new ImageIcon("../img/registrati.png");
scalaRegistrati = new ImageIcon(immagineRegistrati.getImage().getScaledInstance(immagineRegistrati.getIconWidth()/20*2, immagineRegistrati.getIconHeight()/20*2, java.awt.Image.SCALE_SMOOTH)); //immagine in scala
'
这是给予我标题错误的代码行。有人知道吗?
1条答案
按热度按时间2hh7jdfx1#
ImageIcon
可以在映像完全加载之前返回(它在后台加载),这意味着width
和height
可能为零一种解决方案是使用
MediaTracker
,这将允许您"等待"直到映像完全加载,例如。话虽如此,一个总体上更好的解决方案是使用
ImageIO.read
来加载图像,它不仅在返回之前加载图像,而且如果由于某种原因无法加载图像,它将抛出Exception
(ImageIcon
不会执行此操作)"Oh GOD SPIDERS"也是正确的,你可能已经缩放图像到遗忘,所以你可能要检查你的目标大小不是零,然后再尝试缩放图像。
有关详细信息,请参见Reading/Loading an Image
我还建议避免
getScaledInstance
,它往往不是很好。我倾向于使用"分而治之"的方法(将图像分成两半,直到达到所需的大小),例如