类似与MSN Messenger的系统栏图标和消息提示

使用JDIC (Jdesktop Integration Components)类库做开发。
开发过程中遇到的问题:
  1. 主窗体最小化后隐藏
    当发生窗体最小化事件时把窗体隐藏就可以了
              /**/ /*
                 * 最小化窗体时把窗体给隐藏了 (非 Javadoc)
                 * @see java.awt.event.WindowListener#windowIconified(java.awt.event.WindowEvent)
                 
    */

                
    public   void  windowIconified(WindowEvent e) {
                    e.getWindow().setVisible(
    false);
                }

  2. 单击系统托盘,显示程序主窗体
    单击系统托盘但时,把窗体置为可见,并把窗体从任务栏恢复
               //  单击系统托盘,显示程序主窗体
            tray_icon.addActionListener( new  ActionListener()  {
                
    public void actionPerformed(ActionEvent e) {
                    buddyFrame.setVisible(
    true);
                    buddyFrame.setState(JFrame.NORMAL);
                }

            }
    );

  3. 当有消息时在系统托盘图标旁显示一个消息提示
    (这是一个类似与MSN那种,而不是把鼠标放到托盘上显示的 ToolTip)
    当消息到来时在系统托盘图标旁显示一个弹出菜单即可
     
    public   void  promptMsg(String msg, String ticket, String url, String para,
                String userID) 
    {
            
    // 设置消息内容
            mViewMsg.setText(msg);

            
    // 设置url(点击 mViewMsg 菜单选项事件的监听程序)
            mViewMsg.addActionListener(new msgMenuActionListener(msgMenu, url + "?"
                    
    + para));

            
    // 设置菜单的大小和位置
            setMsgMenuSize();

            msgMenu.setVisible(
    true);
        }


        
    /**/ /**
         * 
         * 设置菜单的大小和位置
         
    */

        
    private   void  setMsgMenuSize()  {
            Dimension menuSize 
    = new Dimension(200,150);
            msgMenu.setPopupSize(menuSize);
            
    int xMenu = tray_icon.getLocationOnScreen().x - menuSize.width + 50;
            
    int yMenu = tray_icon.getLocationOnScreen().y - menuSize.height;
            Point menuPoint 
    = new Point(xMenu, yMenu);
            msgMenu.setLocation(menuPoint);
            
        }

你可能感兴趣的:(类似与MSN Messenger的系统栏图标和消息提示)