繁体   English   中英

无法在JLabel中设置图片

[英]unable to set image in JLabel

我设计了一个简单的表格。

在其中,我将一个面板作为contentPane放置一个JLabel作为lblPanel。

现在我正在尝试在JLabel中设置图像。

我正在使用WindowBuilder,因此可以通过设置JLabel的icon属性直接设置图像。

但是,当我尝试此操作时,它仅将Image显示为原始大小,这很自然,我们必须手动设置图像大小才能将JLabel整个送入。

所以,这是当我使用JLabel的icon属性设置Image时WindowBuilder生成的代码。

lblPanel.setIcon(new ImageIcon(Admin_Form.class.getResource("/Icons/MouthSmile.jpg")));

现在,我的问题是我想将图像的大小设置为JLabel的大小,因此可以使用WindowBuilder或只是修改上面的行来直接进行处理吗?

我还尝试了以下方式,我拍摄了两个Imageicon和一个Image。

这是我已经尝试过的代码。

private Image img;
private ImageIcon imgicon;
private ImageIcon newimgicon;

imgicon = new ImageIcon("/Icons/MouthSmile.jpg");
img = imgicon.getImage();

newimgicon = new ImageIcon(img.getScaledInstance(lblPanel.getWidth(),lblPanel.getHeight(), Image.SCALE_SMOOTH)); 
lblPanel.setIcon(newimgicon);

但是,当我删除由Window Builder生成的代码并仅使用我的代码时,不会显示图像。

我也看到了使用BufferedImage的方法,但我认为我将使用BufferedImage调整大小或ImageIcon和Image不会有任何区别。

如果您尝试在将lblPanel添加到Container之前以及在看到JFrame之前获取lblPanel的宽度和高度,则宽度和高度都将为0。

您可以调整选择使用的图像的大小,这将使JLabel达到所需的大小。 那是最简单的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM