java制作托盘图标

      在制作远程控制软件的时候,意外地接触了一下windos托盘的使用。以win7为例。让一些程序,尤其是后台程序没有交互界面,使其在运行时在托盘中显示,无疑要比在任务栏中更加合适。在jdk1.6中已经加入了关于windos托盘的使用api。下面就让我详细为大家解释一下托盘的制作方法。

      其实相当的简单,一共只需要两个类。SystemTray与TrayIcon。SystemTray就是系统的托盘类,就相当于我们常用的菜单类Menu,不过这里不是创建菜单而是直接从系统里获取托盘对象。

SystemTray systemTray=SystemTray.getSystemTray();

 然后就是在其中加入图标TrayIcon的对象了(创建方法详见api)。比较常用的构造函数就是

TrayIcon(Image image, String tooltip, PopupMenu popup)。首先image是托盘图标。这是最容易出错的地方,这里不可以直接在工程下建立image包来用ImageIcon(url)来直接获取image对象,那样会无法显示图片。我是将image包放在src下你的程序所在包里面然后使用类对象直接获取。

new ImageIcon(getClass().getResource("images/图标2.png")).getImage()

这样就可以显示出图片了。不过还有一个一定要注意的地方,悲剧的我的图片用的太大了,而且是png格式,导致图片只显示了一个角,恰巧那个角还是透明的,就导致图标还是不显示,使我还是以为图片image获取出了问题。。。搞了好久(- -!)。回来继续说 TrayIcon 构造方法。第二项就是名字了不用多说。第三项是个菜单,但是这里注意,这是个已经设置好的右键菜单。

    所有对象都取得后一部add。即可完成。

try {
			systemTray.add(trayIcon);
		} catch (AWTException e) {
			System.out.println("error:添加任务栏图标出现错误");
			e.printStackTrace();
		}

 最后让我们看看效果:

 好了一切ok了。。。

你可能感兴趣的:(java)