JLabel setIcon导致运行时错误



我正在NetBeans中创建一个Java应用程序,并且我有以下代码,有时在单击按钮后被调用,以将提供的图像和字符串放在GUI Builder中放置的JLabel上:

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")));

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

该声明假定图像位于应用程序的运行时类路径上,并通过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,并确保映像位于运行时类路径上。

相关内容

  • 没有找到相关文章

最新更新