zl程序教程

您现在的位置是:首页 >  后端

当前栏目

JAVA应用系统工具快捷托盘实例代码

2023-06-13 09:14:46 时间

 1.打开各种系统工具
          2.定时关机(重启、睡眠未实现请参照上面两个文章自行扩展)
          3.简单文件操作

复制代码代码如下:


[java] 
packagecom.cxy.f; 

importjava.awt.Image; 
importjava.awt.MenuItem; 
importjava.awt.PopupMenu; 
importjava.awt.SystemTray; 
importjava.awt.Toolkit; 
importjava.awt.TrayIcon; 
importjava.awt.event.ActionEvent; 
importjava.awt.event.ActionListener; 
importjava.io.IOException; 
importjava.util.HashMap; 
importjava.util.Map; 
/**
 *@authorcxy
 *系统工具快捷托盘
 */ 
publicclassSystemToolsTray 

   publicstaticRuntimert; 
   publicstaticMap<String,String>commandMap=newHashMap<String,String>(); 

   publicstaticvoidmain(String[]args)throwsException 
   { 
       rt=Runtime.getRuntime(); //java运行环境实例 
       SystemTraytray=SystemTray.getSystemTray(); //创建系统托盘 
       PopupMenutrayMenu=newPopupMenu(); //创建托盘右键菜单 

       //初始化命令库 
       commandMap.put("计算器","calc"); 
       commandMap.put("记事本","notepad"); 
       commandMap.put("任务管理器","taskmgr"); 
       commandMap.put("画图工具","mspaint"); 
       commandMap.put("打开QQ","C:\\ProgramFiles(x86)\\Tencent\\QQ\\QQProtect\\Bin\\QQProtect.exe"); 
       commandMap.put("访问文件","cmd/cd:\\cxyCommandShow.txt"); 
       commandMap.put("定时关机","shutdown-s-t600"); 
       commandMap.put("取消关机","shutdown-a"); 

       //自动生成托盘右键菜单并绑定事件(执行命令) 
       for(finalStringone:commandMap.keySet()) 
       { 
           MenuItemitem=newMenuItem(one); 
           item.addActionListener(newActionListener(){ 
               publicvoidactionPerformed(ActionEvente){ 
                   try 
                   { 
                       rt.exec(commandMap.get(one)); 
                   }catch(IOExceptione1) 
                   { 
                       e1.printStackTrace(); 
                   } 
               } 
           }); 
           trayMenu.add(item); 
       } 

       MenuItemexitItem=newMenuItem("退出"); 
       exitItem.addActionListener(newActionListener(){ 
           publicvoidactionPerformed(ActionEvente){ 
               System.exit(0); 
           } 
       }); 
       trayMenu.add(exitItem); 

       Imageimage=Toolkit.getDefaultToolkit().getImage("src/com/cxy/f/play.png"); //载入图片 
       TrayIcontrayIcon=newTrayIcon(image,"快捷工具",trayMenu); //创建trayIcon 
       tray.add(trayIcon); 
   } 

 

注意:
   1.记得改成自己的图标路径,否则生成的托盘没有图标(好似没效果)
   2.eclipse环境运行的时候可能会出现乱码问题,改变运行环境配置中的编码可以解决。
   3.由于只是一个演示程序(体现的是基本思路),并没有做到很完善,如果喜欢可自行完善
       a.菜单生成的顺序可能是乱序,因为使用的是map,遍历出来的是无序的。
       b.可以加多级菜单对菜单进行分类,这样用户体验会好些。
       c.可以打成jar包或者exe方便平时使用。
       d.其他用户体验和性能方面的完善。(这里就不具体说了)
   4.如果有时间的话我会将这个程序完善,并打成jar包供大家使用。