我有 JPanel,它将加载图像。
由于图像的宽度和高度与 JPanel 不同,我想让图像调整大小并适合 JPanel。
阅读这篇文章Image.getScaledInstance() 的危险
现在,如果您仍然喜欢,您可以使用类似的东西,
Image scaledImage = originalImage.getScaledInstance(jPanel.getWidth(),jPanel.getHeight(),Image.SCALE_SMOOTH);
在将图像加载到您的 JPanel 之前,这可能就像在这个答案中讨论的那样。
我知道这已经很老了,但也许这对其他人有帮助
使用这个类而不是普通的 JLabel 并在使用 setIcon(#) 时传递一个 ImageIcon;
private class ImageLabel extends JLabel{
private Image _myimage;
public ImageLabel(String text){
super(text);
}
public void setIcon(Icon icon) {
super.setIcon(icon);
if (icon instanceof ImageIcon)
{
_myimage = ((ImageIcon) icon).getImage();
}
}
@Override
public void paint(Graphics g){
g.drawImage(_myimage, 0, 0, this.getWidth(), this.getHeight(), null);
}
}