JLabel setIcon导致运行时错误

时间:2011-11-28 02:52:48

标签: java swing netbeans jlabel

我正在NetBeans中创建一个Java应用程序,我有以下代码,有时会在按下一个按钮后调用所提供的图像和字符串到放置在GUI Builder中的JLabel:< / p>

helpLabel.setIcon(new ImageIcon("/bepe/resources/" + e.imageFile));
helpLabel.setText(e.getMessage());

图像位于子目录“resources”中,该目录与程序的文件位于同一位置。标签的文本按预期设置,但图像不会出现。如果我在GUI Builder中提前设置图像,则会显示图像。生成的代码是

helpLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/bepe/resources/orIntro.png")));

但是当我尝试以相同的方式设置图标时,我收到运行时错误。我设置图像的方式有问题吗?

1 个答案:

答案 0 :(得分:4)

此声明假定图像位于应用程序的运行时类路径上,并通过URL访问它。这是访问Jar中资源的方法。

helpLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/bepe/resources/orIntro.png")));

此声明假定String参数代表File路径。它不适用于(可能)在Jar中的“应用程序资源”。

helpLabel.setIcon(new ImageIcon("/bepe/resources/" + e.imageFile));

始终如一地使用getResource,并确保图像位于运行时类路径上。