图像调整大小以适合JPanel

Azu*_*zuu 5 java swing image jpanel

我有JPanel,它将加载图像.

由于图像的宽度和高度与JPanel不同,我想让图像调整大小并适合JPanel.

COD*_*BOY 11

阅读本文,Image of Perils of Image.getScaledInstance()

现在,如果您仍然喜欢,可以使用类似的东西,

Image scaledImage = originalImage.getScaledInstance(jPanel.getWidth(),jPanel.getHeight(),Image.SCALE_SMOOTH);
Run Code Online (Sandbox Code Playgroud)

这在将图像加载到JPanel之前,可能就像在这个答案中讨论的那样.


Wol*_*olf 5

我知道这很老了,但也许这有助于其他人

使用此类而不是普通的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);
    }
}
Run Code Online (Sandbox Code Playgroud)