用AWT在系统托盘区创建一个托盘的方法

用AWT在系统托盘区创建一个托盘的方法

        大家用过QQ吧?(呵呵,我这是废话!)当你等录成功后,你的任务栏的右下角就会出现一个小企鹅的图标,它就是在系统托盘区的一个托盘。前几天我做了一个QQ2006的个人设置的界面,大家给我提出了很多建设性的意见,我在这里由衷地感谢大家。今天我学习JDK1.6新特性的时候,偶然发现了JDK1.6中的java.awt.SystemTray,使用这个类就可以在系统托盘区创建一个托盘程序,我如获至宝,我何不在我原来程序的基础上在更进一步——为我的程序添加一个系统托盘呢!经过我的试验,呵呵,我的小企鹅终于出现了。

我将http://www.blogjava.net/lzqdiy/archive/2007/05/07/115756.html的源程序中的QQ类中的main方法更改如下:

public   static   void  main(String[] args)
    
{
        
try
        
{
            
if (SystemTray.isSupported())
            
{// 判断当前平台是否支持系统托盘
                st = SystemTray.getSystemTray();
                java.awt.Image image 
= Toolkit.getDefaultToolkit().getImage(
                        
"qq.gif");//定义托盘图标的图片            
                PopupMenu pm = new PopupMenu();//创建右键菜单
                MenuItem changeUserMenu 
= new MenuItem("更改用户");
                changeUserMenu.addActionListener(
new ActionListener()
                
{
                    
public void actionPerformed(ActionEvent e)
                    
{
                        System.out.println(
"更改用户!");
                    }

                }
);
                MenuItem exitMenu 
= new MenuItem("退出");
                exitMenu.addActionListener(
new ActionListener()
                
{
                    
public void actionPerformed(ActionEvent e)
                    
{
                        System.exit(
0);
                    }

                }
);
                pm.add(changeUserMenu);
                pm.add(exitMenu);

                TrayIcon ti = new TrayIcon(image, "QQ 176870965", pm);
                st.add(ti);
            }


            QQ window 
= new QQ();
            window.open();
        }
 catch (Exception e)
        
{
            e.printStackTrace();
        }

    }
当然还需要导入几个相关的类
import  java.awt.MenuItem;
import  java.awt.PopupMenu;
import  java.awt.SystemTray;
import  java.awt.Toolkit;
import  java.awt.TrayIcon;
import  java.awt.event.ActionEvent;
import  java.awt.event.ActionListener;

运行的效果:

不好意思,我的企鹅图片有点大,所以没有显示完全,请大家海涵。

你可能感兴趣的:(用AWT在系统托盘区创建一个托盘的方法)