用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;

运行的效果:

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

posted on 2007-05-13 09:23 我为J狂 阅读(1753) 评论(4)  编辑  收藏 所属分类: 图形用户界面

评论

# re: 用Java在系统托盘区创建一个托盘的方法 2007-05-13 17:19 Pande

我用SWT的Display.getSystemTray()  回复  更多评论   

# re: 用Java在系统托盘区创建一个托盘的方法 2007-05-14 10:37 BeanSoft

JDK 1.4 可以使用 JDIC, Sun 的开源桌面整合框架. http://www.blogjava.net/beansoft/archive/2007/02/11/99290.html 这个 Swing 的就用的这个框架显示的托盘.  回复  更多评论   

# re: 用Java在系统托盘区创建一个托盘的方法 2007-05-14 14:14 交口称赞

还是swt好啊  回复  更多评论   

# re: 用AWT在系统托盘区创建一个托盘的方法 2007-06-10 11:52 itkui

awt、swing,swt实现靠边隐藏如何实现呀?  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问  
 
<2007年5月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

常用链接

留言簿(11)

随笔分类(48)

文章分类(29)

常去逛逛

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜