用Java程序模拟windows计算器(2)——更改左上角图标

在上篇我们介绍了大概的框架,但是之前的框架左上角是一杯咖啡,跟我们windows里面的计算器不同,所以,今天我们的主要任务就是更改这个ico的图片。

不过在这之前,我们先把上一篇遗留下来的问题先做一个解决。之前只是顾着做出一个大概的样子出来,并没有按照实际的大小做,今天我们就做成与windows计算器相同大小的窗口。将之前的这句代码更改一下即可:

this.setSize(450,350); 
更改为
this.setSize(230,320);

解决完了以后,我们来解决左上角图标的问题。

首先,先上代码:

 private void jbInit(){
     ImageIcon icon=new ImageIcon(".\\src\\img\\Calculator.png"); 
     this.setIconImage(icon.getImage());
     this.setTitle("计算器");//设置窗体左上角的文字
     this.setSize(230,320); //设置窗体大小
     this.setVisible(true); //设置窗体是显示的,而不是隐藏的
 }

然后我们看看运行效果如下:

首先,我的文件框架是这样子的(记住这个,这里的位置很重要,关系到后面图标文件位置):

ImageIcon icon=new ImageIcon(".\\src\\img\\Calculator.png"); 

上面这句代码“ ”引号里面的是图片的路径,img文件夹和yandj.cn的package在同一个sre文件夹下面,因此图片的路径应该使用.\src\img\Calculator.png即可。但是因为“\”在java里面是转义字符,所以后面要再加一个“\”才表示.\src\img\Calculator.png路径。或者可以使用“/”来替代“\”,即:

ImageIcon icon=new ImageIcon("./src/img/Calculator.png"); 

关于ImageIcon的一些使用说明如下:

ImageIcon

public ImageIcon(String filename)

根据指定的文件创建一个 ImageIcon。使用 MediaTracker 预载图像以监视图像的加载状态。指定 String 可以是一个文件名或是一条文件路径。在指定一条路径时,可使用 Internet 标准正斜杠 (“/”) 作为分隔符。(该字符串被转换成一个 URL,而正斜杠适用于所有系统。)例如,指定:

    new ImageIcon("images/myImage.gif")

该描述被初始化为 filename 字符串。

参数:
filename – 指定文件名或路径的 String
另请参见:
getDescription()

上面的方法只是将图片路径复制给了icon,由于图片是不能直接显示的,因此,图片必须依附于一些显示的对象。于是我们就采用setIconImage方法来实现。

先来看看这个方法的使用说明:

setIconImage

public void setIconImage(Image image)
设置要作为此窗口图标显示的图像。将单个图像指定为窗口的图标时,可以使用此方法代替 setIconImages()

以下语句:

     setIconImage(image);

等价于:

     ArrayList imageList = new ArrayList();
     imageList.add(image);
     setIconImages(imageList);

注:根据上下文的不同(例如,窗口装饰、窗口列表、任务栏等),本机窗口系统可以使用不同尺寸的不同图像表示一个窗口。也可以对所有上下文使用一个图像,或者根本不用图像。

覆盖:
Frame 中的 setIconImage
参数:
image – 要显示的图标图像。
另请参见:
Window.setIconImages(java.util.List ), Window.getIconImages()

 

因为setIconImage(image)方法里面的参数是image类型的,所以,我们必须用getImage方法来提供这个参数。icon.getImage()返回的是我们需要的图片的image对象。

this.setIconImage(icon.getImage());

到此为止我们就更换好了计算器的图标。如果有什么不明白的可以联系我。联系方式在首页右边。

0 Comments
Leave a Reply