Java将图像填充到Label中

时间:2014-01-22 11:17:04

标签: java swing awt imageicon

我有一个固定尺寸的标签来显示图像。如何调整图像大小以适应标签,填充。我目前的代码是将标签设置为图像大小,我想要反过来。

代码

ImageIcon icon = new ImageIcon(bi);
Label.setIcon(icon);
Dimension imageSize = new Dimension(icon.getIconWidth(), icon.getIconHeight());
Label.setPreferredSize(imageSize);
Label.revalidate();
Label.repaint();

2 个答案:

答案 0 :(得分:2)

您可以使用Darryl的Stretch Icon。图标将根据标签的可用空间调整大小。

答案 1 :(得分:0)

因此,如果您有一个固定大小的标签,您可以简单地将图像读取为BufferedImage对象,然后将其缩放到标签的大小。之后,您可以创建一个图标并将其设置为JLabel的图标。下面的代码应该有效:

File imageFile = new File("image.jpg");
BufferedImage bufImg = null;

try {
    bufImg = ImageIO.read(imageFile);
} catch (IOException e) {
    e.printStackTrace();
}

BufferedImage scaledImg = bufImg.getScaledInstance(Label.width, Label.height, Image.SCALE_SMOOTH);

Label.setIcon(new ImageIcon(scaledImg));