-5

我一直在尝试所有这些示例代码,但都不起作用,它总是希望我有一个 try/catch,这意味着我必须初始化。无论如何,变量,我正在把头发撕掉,我有一个与图像精确大小的jframe,我想要的只是填充整个jframe,另外,如果图像是透明的,你能做到吗?你可以看到整个jframe。

提前致谢

4

2 回答 2

1
frame.add(new JLabel(new ImageIcon("path/to/image.png"));

Swing 中有一个类ImageIcon可以用于图像。Javadocs 用于ImageIcon

还有很多其他的使用方法ImageIcon

于 2013-01-17T02:04:43.030 回答
1

根据您的说法,您的示例代码希望您使用try / catch块,我猜您正在使用ImageIO该类。它会返回一个BufferedImage无法添加到框架中的内容。ImageIcon在此处查看可与 JLabel 一起使用的类

frame.add(new JLabel(new ImageIcon("my_image.png"));

如果您的图像在 jar 之外,这应该可以工作。如果它包含在 jar 中,请使用类加载器为您获取资源。

URL url = getClass().getClassLoader().getResource("my_image.png");
ImageIcon icon = new ImageIcon(url);
frame.add(new JLabel(icon));

希望这有效。

于 2013-01-17T02:24:39.770 回答