初学者GUI,使用Eclipse出口jar包裹,不能显示最小化的图标集(hello.png根文件下的项目文件夹文件)。码如下面:

import javax.swing.JFrame;
import java.awt.Toolkit;
import java.awt.Image;
import java.net.URL; public class GUITest {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Toolkit kit = Toolkit.getDefaultToolkit();
Image image = kit.getImage("hello.png");
frame.setIconImage(image);
frame.show();
}
}

后来我发现仅仅要把jar包和hello.png在同一文件夹下。图标就能够正常显示。这表示jar是一个单独的文件而非一个文件夹。而上面这代码表示导出的jar文件和hello.png必需要在同样路径下。

解决方法

import javax.swing.JFrame;
import java.awt.Toolkit;
import java.awt.Image;
import java.net.URL; public class GUITest {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Toolkit kit = Toolkit.getDefaultToolkit();
URL imgURL = GUITest.class.getResource("images/hello.png");
Image image = kit.getImage(imgURL);
frame.setIconImage(image);
frame.show();
}
}

把hello.png的文件夹是 "项目名/bin/images/hello.png" 能够看到images 和class文件是同一文件夹的,所以代码中"images/hello.png"是表示相对路径。当然也能够把images文件夹放在项目的根文件夹下,仅仅要把路径改成"/images/hello.png" 。这样,导出jar包后,在其它位置也能够正常显示图标,由于路径正确了。

版权声明:本文博主原创文章,博客,未经同意不得转载。

JAVA学习笔记 -- 包资源文件jar包裹的更多相关文章

  1. Java学习笔记-包,classpath,import,jar

    这里介绍Java的包,classpath,import和jar 包(package) 对类文件进行分类管理 给类提供多层命名空间 写在程序文件的第一行 类名的全称的是 包名.类名 包也是一种封装形式 ...

  2. robot framework学习笔记之一 资源文件(Resource)和外部资源(External Resources)

    一.资源文件(Resource) 测试套件主要是存放测试案例,资源文件主要是用来存放用户关键字. 添加资源    在目录型的Project/Test Suite下单击鼠标右键,选择『New Resou ...

  3. Android学习笔记数组资源文件

    在android中我们可以通过数组资源文件,定义数组元素. 数组资源文件是位于values目录下的 array.xml <?xml version="1.0" encodin ...

  4. Java学习笔记--字符串和文件IO

    1.Java中的字符串类和字符的表示 2.区分String,StringBuilder和StringBuffer 3.从命令行中给main方法传递参数 4.文件操作 1 Java中的字符串和字符 1. ...

  5. Android学习笔记颜色资源文件

    资源文件目录 颜色资源文件格式 colors.xml <?xml version="1.0" encoding="utf-8"?> <reso ...

  6. Android学习笔记菜单资源文件

    创建菜单资源 menu_one.xml <?xml version="1.0" encoding="utf-8"?> <menu xmlns: ...

  7. Android学习笔记样式资源文件

    样式资源和主题资源都是写在styles.xml文件里面的 <style name="title"> <item name="android:textSi ...

  8. Java学习笔记-基础语法Ⅸ-文件

    File File是文件和路径名的抽象表示,File封装的并不是一个真正存在的文件,是一个路径名,可以存在也可以不存在 常用方法: 创建文件:createNewFile() 创建目录:mkdir() ...

  9. Java 学习笔记及资源

    Spring框架入门HelloWorld :http://www.importnew.com/13246.html  (iteye 唐 博客,跟我学Sprint) Spring 框架下载地址:http ...

随机推荐

  1. UC高级编程--实现myls程序

    跟着达内视频,学习UC高级编程,完毕程序小练习. 主要练习的函数为:  int lstat(const char *path, struct stat *buf);  size_t strftime( ...

  2. VIM命令集

    Command Action Notes vim file +54 open file and go to line 54 any : command can be run using + on co ...

  3. session深入解读

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:尽管session机制在web应用程序中被採用已经非常长时间了.可是仍然有非常多人不清楚 ...

  4. 在阿里云上布置git server

    前言 东莞,晴,26至32度. 一直以为都是使用SVN Server作为私用的版本号控制器.随着Git的大行其道.近期由于项目须要,也试着在阿里云上部署Git Server.这里由于团队人员少.我採用 ...

  5. 简单的刷票系统(突破IP限制进行投票) (转)

    前言 相信大家平时肯定会收到朋友发来的链接,打开一看,哦,需要投票.投完票后弹出一个页面(恭喜您,您已经投票成功),再次点击的时候发现,啊哈,您的IP(***.***.***.***)已经投过票了,不 ...

  6. tarjan算法(割点/割边/点连通分量/边连通分量/强连通分量)

    tarjan算法是在dfs生成一颗dfs树的时候按照访问顺序的先后,为每个结点分配一个时间戳,然后再用low[u]表示结点能访问到的最小时间戳 以上的各种应用都是在此拓展而来的. 割点:如果一个图去掉 ...

  7. Spring官方网站的改版后下载

    Spring官方网站改版很长一段时间后还没有找到直接下载Jar链接包,下面总结了一些方法,可在网上,亲測可用. 1.直接输入地址,改对应版本号就可以:http://repo.springsource. ...

  8. 第1周 SQL Server 如何执行一个查询

    原文:第1周 SQL Server 如何执行一个查询 大家好,欢迎来到第1周的SQL Server性能调优培训.在我们进入SQL Server性能调优里枯燥难懂的细节内容之前,我想通过讲解SQL Se ...

  9. Mahout推荐算法ItemBased

    Mahout推荐的ItemBased 一.   算法原理 (一)    基本的 下面的例子,参见图评分矩阵:表现user,归类为item. 图(1) 该算法的原理: 1.  计算Item之间的相似度. ...

  10. Linux下关于解决JavaSwing中文乱码的情况(转)

    前两天在linux中运行java 老是出乱码,很苦恼,后来网上找了好多解决办法.有些可行,有些不可行,今天总结一下. redhed 貌似没出现乱码 本身就jdk就支持中文 红旗linux  suse等 ...