background image

  

public

 InputStream getResourceAsStream(String name)

  

public

 

static

 InputStream getSystemResourceAsStream(String name)

  

public

 

static

 URL getSystemResource(String name)

  后两个方法可以看出是静态的方法,这几个方法都可以从 Jar 中读取图片资源,但是
对与动画的 gif 文件,笔者在尝试过程中发现,存在一些差异。
  String gifName 为 Gif 文件在 Jar 中的相对路径。
  (

1

)使用了两个静态方法

  BufferedImage image=ImageIO.read(ClassLoader.getSystemResourceAsStream(gifName));
 
  或者
  Image 
image=Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource(gifName));
 
  这两种方式可以成功地读取 gif 文件,但是对于 gif 动画,显示出来地是静态的。
  (

2

)使用其他两个方法

  Image image=Toolkit.getDefaultToolkit().getImage(

this

.getClass.getClassLoader()

 
.getResource(gifName));
 
  再这种方式下动画可以正常显示了。