0

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

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

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

我有 WindowBuilder,所以我可以使用设置 JLabel 的图标属性直接设置图像。

但是当我尝试这个时,它仅将图像显示为其原始大小,这是自然的,我们必须手动设置图像大小以馈送整个 JLabel。

所以,这是当我使用 JLabel 的图标属性设置图像时由 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 不会有任何区别。

4

2 回答 2

0

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

于 2013-08-17T14:21:48.017 回答
0

您可以调整您选择使用的图像的大小,这将使 JLabel 成为您想要的大小。这是最简单的方法。

于 2018-05-04T18:27:46.557 回答