import javax.swing. * ; import java.awt. * ; import java.awt.event. * ; /** */ /** *使java application生成托盘图标的例子 *本代码在JDK1.6上,Winxp平台上测试通过 *@author:NetJava.org */ public class TrayTest ... { public static void main(String[] args) ...{ PopupMenu popup = new PopupMenu(); MenuItem menuExit = new MenuItem("退出"); MenuItem menuOpen = new MenuItem("打开"); MenuItem menuCancel = new MenuItem("取消"); //创建退出菜单监听器 ActionListener exitListener = new ActionListener() ...{ public void actionPerformed(ActionEvent e) ...{ System.exit(0); } }; //创建打开监听器 ActionListener openListener = new ActionListener() ...{ public void actionPerformed(ActionEvent e) ...{ JOptionPane.showInputDialog("请输入您的密码:"); } }; menuExit.addActionListener(exitListener); menuOpen.addActionListener(openListener); popup.add(menuOpen); popup.add(menuCancel); popup.add(menuExit); //------------ CreateTray ct =CreateTray.getInstance(); //工作目录下使用的tray图标文件 String ic; if(!ct.CreteTrayIcon(iconFileName,"我的托盘",popup)) ...{ System.out.println("不能创建托盘"); } }} class CreateTray ... { private CreateTray()...{} private static CreateTray ct=null; /** *//**创建单实列*/ public static CreateTray getInstance() ...{ //因为使用了判断语句,所以要用getInstance()方法 if(ct==null) ...{ ct=new CreateTray(); } return ct;} /** *//**创建tray,如成功返回true值 @para trayImage:创建tray图标的图片文件名 @para trayName:tray显示名字 @para popup 这个tray上的PopupMenu */ public boolean CreteTrayIcon(String trayImage,String trayName,PopupMenu popup) ...{ boolean isCreated=false; final TrayIcon trayIcon;//TrayIcon是一个预定义的类 if (SystemTray.isSupported())//如果系统支持托盘功能,如windows ...{ SystemTray tray = SystemTray.getSystemTray();//获取一个SystemTray对象 Image image = Toolkit.getDefaultToolkit().getImage(trayImage);//获取一个图标对象 //设定托盘图标,这是核心代码,其余的代码都是重新封装,以利使用 trayIcon = new TrayIcon(image, trayName, popup); trayIcon.setImageAutoSize(true); // TrayIcon对象的actionPerfomed()方法只响应双击事件 //托盘名称会作为tooltip在光标移动到托盘时自动显示 final ActionListener al = new ActionListener()...{ public void actionPerformed(ActionEvent e) ...{ trayIcon.displayMessage("托盘事件", "这个双击事件己到", TrayIcon.MessageType.WARNING); } }; trayIcon.addActionListener(al); try ...{ tray.add(trayIcon);//将托盘添加到系统托盘 isCreated=true; } catch (AWTException e) ...{ System.err.println("无法创建托盘:"+e); isCreated=false; } } return isCreated; }//end method} // end class