Java 1.6后可以添加托盘图标和托盘图标弹出菜单变的很方便,一般代码如下:
if (SystemTray.isSupported()) { // 判断是否支持系统托盘
URL url = this.getClass().getResource("/images/Trayicon.gif"); // 获取图片所在的URL
ImageIcon icon = new ImageIcon(url); // 实例化图像对象
Image image = icon.getImage(); // 获得Image对象
TrayIcon trayIcon = new TrayIcon(image); // 创建托盘图标
trayIcon.addMouseListener(new MouseAdapter() { // 为托盘添加鼠标适配器
public void mouseClicked(MouseEvent e) { // 鼠标事件
if (e.getClickCount() == 2) { // 判断是否双击了鼠标
showFrame(); // 调用方法显示窗体
}
}
});
trayIcon.setToolTip("系统托盘"); // 添加工具提示文本
PopupMenu popupMenu = new PopupMenu(); // 创建弹出菜单
MenuItem exit = new MenuItem("退出"); // 创建菜单项
//响应方法
exit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
});
popupMenu.add(exit); // 为弹出菜单添加菜单项
trayIcon.setPopupMenu(popupMenu); // 为托盘图标加弹出菜弹
SystemTray systemTray = SystemTray.getSystemTray(); // 获得系统托盘对象
try {
systemTray.add(trayIcon); // 为系统托盘加托盘图标
} catch (Exception e) {
e.printStackTrace();
}
}
调用的ShowFrame()方法就是显示主窗口。一般如下:
public void showFrame() {
this.setVisible(true); // 显示窗体
this.setState(Frame.NORMAL);
}
注意几点;
1、图片不支持ico的,用jpg、gif、png,16*16大小的最合适。
2、JDK必须1.6以上。
3、这段代码一般放在构造方法中,弹出菜单的响应方法自己添加。