用相对路径的图片改变java winform的窗口icon

今天开始接触到JAVA WINFORM的开发,之前老大已经搭了一个简单的框架出来,让我从SVN上面更新一个下来熟悉一下,于是,我就去了。

       很熟悉,很亲切的界面风格,WINFORM,能在这里再与你相逢,真是“猿粪”啊。这次的相逢让我想起了往事,在大一和大二的时候,当时曾在做课程设计的时候有做过VBC#WINFORM开发,众所周知,微软傻瓜式的IDE让我们玩得不亦乐乎,于是也使WINFORM给我留下了美好的回忆,呵呵,于是,信心满满的我开始了JAVA SWING的探索之旅。

       首先是软件的登录界面,我打开login.java一看,老大只是简单地拖了两个labelinput,然后加了两个按钮,实现了一个登录的方法,而这,对于一名致力于给用户提供优越的用户体验的前端来说,一定是不能接受的,于是,我马上开始了页面的修整之旅。

       首先,我运行了一下,第一个发现的问题是窗口标题左侧的java logo很刺眼,那杯热气腾腾的咖啡作为窗体的icon看起来很不专业,有点不伦不类的感觉,于是,我第一个便拿它开刀:先换掉它!

       怎样换呢?陌生的IDE,陌生的领域,这个一时间也不知道怎么搞,不过按照道理来说,这个应该在属性页是可以配置才对的,于是便用鼠标点了一下登录框所在面板,毕竟要先让IDE明确你的操作目标嘛,然后检查了一下它的属性页,没有发现想当然中近似的属性,问题出了哪里呢?嗯,可能是还没有选择到最上层的元素吧,于是,我尽量靠着窗体边框来点,发现右侧属性页显示当前选中的控件是jframe,嗯,应该是这个了。再扫了一遍它的属性,发现有两个属性是比较可疑的,iconImageiconImages,按照单词的意思,大概可以他们来达到我的目的吧。点了一下这两个属性对应的右侧的编辑按钮,弹出来一个相应的编辑框,编辑的文本框还被套在了一个叫setIconImage的方法里面,很自然地,我将原打算作为图标的图片的url填了进去,然后保存,运行,没有效果,哪里出问题了呢?注意细节,再检查了一下页面,发现属性编辑框的下面,标注着java.awt.image,我大胆推测,这个参数必须是是一个java.awt.image的实例,这个实例的构造方法是怎样的呢?其实可以通过查API就能得到,但是,我偷懒了,直接上网查了一下,貌似有个网友说直接new一个java.awt.IconImage,参数用图片的URL就可以了,嗯,这个看起来还有点靠谱,于是,马上自己动手试了一下,还是那杯冒着热气的咖啡,又检查了一遍,貌似这个iconImage也不符合要求,人家要求的是awt.image的实例噢,难道这个方法有问题吗?于是,继续上网,

求索良久,终于成功了,方法如下:

java.awt.Toolkit.getDefaultToolkit().getImage(getClass().getResource("images/logo.png"))getImage方法要求的参数是绝对路径的,但稍有头脑的开发人员都应该知道,用绝对路径是很危险的做法,也是很不灵活的做法,所以用getClass().getResource方法来过渡,这样,就可以实现用相对路径来定义窗体的图标啦

你可能感兴趣的:(用相对路径的图片改变java winform的窗口icon)