Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 调整图像大小以适合JPanel_Java_Image_Swing_Jpanel - Fatal编程技术网

Java 调整图像大小以适合JPanel

Java 调整图像大小以适合JPanel,java,image,swing,jpanel,Java,Image,Swing,Jpanel,我有一个JPanel将加载图像 由于图像的宽度和高度与JPanel不同,我想调整图像的大小并使其适合JPanel。阅读本文 现在如果您仍然喜欢您可以使用 Image scaledImage = originalImage.getScaledInstance(jPanel.getWidth(),jPanel.getHeight(),Image.SCALE_SMOOTH); 在将图像加载到您的JPanel之前,这可能是讨论过的。我知道这已经很老了,但这可能会帮助其他人 使用此类而不是普通的JLab

我有一个JPanel将加载图像

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

阅读本文

现在如果您仍然喜欢您可以使用

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

在将图像加载到您的JPanel之前,这可能是讨论过的。

我知道这已经很老了,但这可能会帮助其他人

使用此类而不是普通的JLabel,并在使用setIcon(#)时传递ImageIcon


为了获得更好的帮助,请使用演示图片和JPanel编辑您的问题。您可以发布有关图片和JPanel的相关代码吗?我有一个类,它扩展了JPanel并使用paintComponent在上面插入图片。。n我正在构造函数中传递图像路径。“我有一个JPanel,它将加载图像。”如果这些是用户图像,最好将它们放在
JLabel
中的
JScrollPane
中。你不想让你母亲的“肖像”式的形象在整个视口中伸展开来但这里的问题是我没有得到jpanels的宽度和高度。。我有一个扩展了JPanel的类,我把图像放在这个面板上。当我尝试获取宽度和高度时,它显示为0。0@Azuu:然后重写它的
getPreferredSize()
,就像使用
paintComponent(…)
方法一样,让它返回一些值,例如
返回新维度(500500),这样就可以了,现在你可以计算它的高度和宽度了。至少对我来说,这比上面的更实用。我实际上编写了同一个类,但是我没有宽度和高度参数。非常感谢。
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);
    }
}