Java中系统托盘

import java.awt.*;
import java.awt.TrayIcon.MessageType;
import java.awt.event.*;

import javax.swing.*;
public class MyDemo extends JFrame
{
   /*
    * 系统托盘使用 SystemTray类 托盘图标使用trayIcon类
    *
    * */
 public MyDemo()
 {
  this.addWindowListener(new WindowAdapter()// 系统关闭事件
     {
    public void windowClosing(WindowEvent e)
       {setVisible(false);}
     });
     this.setSize(200,200);
     this.setVisible(true);
 }
 private void SystemTrayInitial() {// 托盘
  if (!SystemTray.isSupported()) // 判断当前系统是否支持系统栏
   return;
  try {
    String title = "学院管理系统\n华育国际长沙软件学院";//设置提示文本信息
   SystemTray sysTray = SystemTray.getSystemTray();
   Image image = Toolkit.getDefaultToolkit().getImage(
     MyDemo.class.getResource("/icons/sysTray.png"));//获取MyDemo类的class文件路径下的图标
   TrayIcon trayicon = new TrayIcon(image, title,createMenu());//创建托盘图标:由图标、文本、右击菜单组成
    trayicon.setImageAutoSize(true);//设置是否自动调整图标的大小
    trayicon.addActionListener(new ActionListener()//双击图标时显示窗体
    {
     public void actionPerformed(ActionEvent e) {
      setVisible(true);
      toFront();
     }
    });
    sysTray.add(trayicon);
   trayicon.displayMessage(title, title, MessageType.INFO);//窗体托盘时所显示的消息对话框
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 
 private PopupMenu createMenu() { // 创建系统栏菜单的方法
  PopupMenu menu = new PopupMenu();
  MenuItem exitItem = new MenuItem("退出");
  exitItem.addActionListener(new ActionListener() { // 系统栏退出事件
     public void actionPerformed(ActionEvent e) {
      System.exit(0);
     }
    });
  MenuItem openItem = new MenuItem("打开");
  openItem.addActionListener(new ActionListener() {// 系统栏打开菜单项事件
     public void actionPerformed(ActionEvent e) {
      if (!isVisible()) {
       setVisible(true);
       toFront();
      } else
       toFront();
     }
    });
  menu.add(openItem);
  menu.addSeparator();
  menu.add(exitItem);
  return menu;
 }
 
 public static void main(String[] args)
 {
  MyDemo demo=new MyDemo();
  demo.SystemTrayInitial();
 }

}

posted @ 2009-08-04 15:11  流&浪者  阅读(1089)  评论(1)    收藏  举报