系统托盘

来源:互联网 发布:收腰羽绒服 知乎 编辑:程序博客网 时间:2024/06/06 08:53

public class UI {
 private TrayIcon trayIcon;
 public UI(){
  this.init();
 }
 
 public void mini(){
  SystemTray tray = SystemTray.getSystemTray();
  try {
   tray.add(this.trayIcon);
  } catch (AWTException e) {
   e.printStackTrace();
  }
 }
 
 public void init(){
  Image image = Toolkit.getDefaultToolkit().getImage(System.getProperty("user.dir")+"/image/logo.png");
  String tooltip = "SystemProbe";
  PopupMenu popup = new PopupMenu();
  MenuItem aboutItem = new MenuItem("About");
  Map<TextAttribute,Object> fontmap = new HashMap<TextAttribute,Object>();
  fontmap.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD);
  Font font = Font.getFont(fontmap);
  aboutItem.setFont(font);
  aboutItem.addActionListener(new AboutActionListener());
  popup.add(aboutItem);
  MenuItem exitItem = new MenuItem("Exit");
  exitItem.addActionListener(new ExitActionListener());
  popup.add(exitItem);
  trayIcon = new TrayIcon(image,tooltip,popup);
 }
 
 public void displayMessage(MessageType type,String title,String message){
  TrayIcon.MessageType mt = null;
  if(type == MessageType.ERROR){
   mt = TrayIcon.MessageType.ERROR;
  }else if(type == MessageType.INFO){
   mt = TrayIcon.MessageType.INFO;
  }else if(type == MessageType.NONE){
   mt = TrayIcon.MessageType.NONE;
  }else if(type == MessageType.WARNING){
   mt = TrayIcon.MessageType.WARNING;
  }
  trayIcon.displayMessage(title, message, mt);
 }
 
 public class ExitActionListener implements ActionListener{

  @Override
  public void actionPerformed(ActionEvent e) {
   int result = JOptionPane.showConfirmDialog(null, "Are you sare to exit System?","Are you sare to exit System?",JOptionPane.YES_NO_OPTION);
   if(result==JOptionPane.YES_NO_OPTION){
    System.exit(0);
   }
  }
  
 }
 
 public class AboutActionListener implements ActionListener{

  @Override
  public void actionPerformed(ActionEvent e) {
   JOptionPane.showMessageDialog(null, "SystemProbe","About SystemProbe",JOptionPane.INFORMATION_MESSAGE);
  }
 }
 
 public enum MessageType{
  ERROR
  ,INFO
  ,NONE
  ,WARNING
  ,NODISPLAY
 }
}

 

 

public class Main {

 public static void main(String[] args) {
  UI ui = new UI();
  ui.mini();
  ui.displayMessage(MessageType.INFO, "系统信息", "系统探针已经启动");
 }
}

原创粉丝点击