5

画像を読み込むJPanelがあります。

画像の幅と高さはJPanelと同じではないので、画像のサイズを変更してJPanelに合わせたいと思います。

4

2 に答える 2

11

この記事を読んでください、Image.getScaledInstance()の危険

それでも希望する場合は、次のようなものを使用できます。

Image scaledImage = originalImage.getScaledInstance(jPanel.getWidth(),jPanel.getHeight(),Image.SCALE_SMOOTH);

これは、おそらくこの回答で説明されているように、画像をJPanelにロードする前に行います。

于 2012-05-17T11:10:44.157 に答える
6

私はこれがかなり古いことを知っています、しかし多分これは他の人々を助けます

通常の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);
    }
}
于 2015-01-29T23:41:31.390 に答える