Java 调整图像大小以适合JPanel
我有一个JPanel将加载图像 由于图像的宽度和高度与JPanel不同,我想调整图像的大小并使其适合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
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);
}
}