java 托盘制作代码实例

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
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值