JFC系列5之从JAR包中获取图片

  在JAR包中获取图片,可以通过getResource获取到该图片的一个URL对象,再通过URL对象创建图像。具体实现如下:

 

  从JAR包中获取ImageIcon。

/** * 从JAR包中获取 ImageIcon 对象。 * * @param clazz * @param filePath 图片的路径。当图片与指定的class文件在同一层次的目录时,可以用相对路径,如"res/1.jpg"。 * 当图片与指定的class文件不在同一层次的目录时,则必须用绝对路径,如"/res/1.jpg"。 * * @return imageIcon ImageIcon 对象 */ public static ImageIcon getImageIconInJar(Class clazz, String filePath) { URL url = clazz.getResource(filePath); ImageIcon imageIcon = null; if (url != null) { imageIcon = new ImageIcon(url); } return imageIcon; }

 

  从JAR包中获取Image(在JDK6中Image类没有参数为URL类型的构造方法)。

/** * 从JAR包中获取 Image 对象。 * * @param clazz * @param filePath 图片的路径。当图片与指定的class文件在同一层次的目录时,可以用相对路径,如"res/1.jpg"。 * 当图片与指定的class文件不在同一层次的目录时,则必须用绝对路径,如"/res/1.jpg"。 * * @return image Image 对象 */ public static Image getImageInJar(Class clazz, String filePath) { URL url = clazz.getClassLoader().getResource(filePath); Image image = null; if (url != null) { image = Toolkit.getDefaultToolkit().createImage(url); } return image; }

 

  上面代码已被收录在我的diaoxianSoft中的myUtil包中。此包暂未完善,亦未做正规测试,不知其有多大通用性,仅作为我个人的私有包,在自己写代码中使用。

  JFC系列将分享一些常见但又让我们这些新手头疼的问题的解决方法,希望大家继续关注,也希望大家一起分享自己的成果。

上一篇:高斯模糊算法的 C++ 实现


下一篇:【TcaplusDB知识库】[Generic表]删除数据示例代码