我可以制作一个可以调整图标图像的JLabel吗?

时间:2017-08-06 11:37:16

标签: java image swing jlabel imageicon

就像我们可以调整JFrame的大小一样,我想在一个帧上显示图像。 我希望它可以调整大小所以当我调整时,图像应该调整大小。

我怎么能这样做?

try {
    myPicture = ImageIO.read(f);
    picLabel.setIcon(new ImageIcon(myPicture));
    panel.add(picLabel);
} catch (IOException e) {
    e.printStackTrace();
}

我将标签(带图片)添加到JPanel,面板已添加到框架中。

2 个答案:

答案 0 :(得分:0)

ImageIcons始终可以调整大小。尝试将其转换为image,调整大小,将其转换回ImageIcon,然后重新应用它(当然,如果要调整大小,请执行此操作)。

Image myScaledPicture = myPicture.getImage().getScaledInstance(newWidth, newHeight, Image.SCALE_SMOOTH);
picLabel.setIcon(new ImageIcon(myScaledPicture);

此处有更多信息:How to resize JLabel ImageIcon?

答案 1 :(得分:0)

您可以使用Stretch Icon

它可以在任何可以绘制图标的组件中使用,并且图像将随着组件的大小调整而缩放。

它是可重复使用的代码,因此您无需一直进行自定义绘制。