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

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

代码如下:

[java] 
package com.cxy.f;

import java.awt.Image; 
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; 
import java.io.IOException; 
import java.util.HashMap; 
import java.util.Map; 
/**
 * @author cxy
 * 系统工具快捷托盘
 */ 
public class SystemToolsTray 

    public static Runtime rt; 
    public static Map<String,String> commandMap=new HashMap<String, String>();

public static void main(String[] args) throws Exception 
    { 
        rt=Runtime.getRuntime();  //java运行环境实例 
        SystemTray tray = SystemTray.getSystemTray();  //创建系统托盘 
        PopupMenu trayMenu= new PopupMenu();  //创建托盘右键菜单

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

//自动生成托盘右键菜单并绑定事件(执行命令) 
        for(final String one : commandMap.keySet()) 
        { 
            MenuItem item = new MenuItem(one); 
            item.addActionListener(new ActionListener() { 
                public void actionPerformed(ActionEvent e) { 
                    try 
                    { 
                        rt.exec(commandMap.get(one)); 
                    } catch (IOException e1) 
                    { 
                        e1.printStackTrace(); 
                    } 
                } 
            }); 
            trayMenu.add(item); 
        }

MenuItem exitItem = new MenuItem("退出"); 
        exitItem.addActionListener(new ActionListener() { 
            public void actionPerformed(ActionEvent e) { 
                System.exit(0); 
            } 
        }); 
        trayMenu.add(exitItem);

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

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

(0)

相关推荐

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

    1.打开各种系统工具            2.定时关机(重启.睡眠未实现 请参照上面两个文章自行扩展)           3.简单文件操作 复制代码 代码如下: [java]  package com.cxy.f; import java.awt.Image;  import java.awt.MenuItem;  import java.awt.PopupMenu;  import java.awt.SystemTray;  import java.awt.Toolkit;  import

  • java公众平台通用接口工具类HttpConnectUtil实例代码

    实例如下: package com.common.util; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.ConnectException; import java.net.HttpURLConnection; import java.net.URL; import

  • java date类与string类实例代码分享

    Date类用来指定日期和时间,其构造函数及常用方法如下: publicDate() 从当前时间构造日期时间对象. publicStringtoString() 转换成字符串. publiclonggetTime() 返回自新世纪以来的毫秒数,可以用于时间计算. [例3.10]测试执行循环花费的时间(数量级为毫秒),具体时间情况如图3.9所示.源程序代码如下: //程序文件名为UseDate.java import java.util.Date; public class UseDate { pu

  • 三种Java打印PDF文档的实例代码

    以下内容归纳了通过Java程序打印PDF文档时的3种情形.即: 1 静默打印 2 显示打印对话框打印 3 打印PDF时自定义纸张大小 使用工具:Spire.PDF for Java Jar文件获取及导入: 方法1:下载jar包.下载后,解压文件,并将lib文件夹下的Spire.Pdf.jar导入java程序. 方法2:可通过maven库导入.参考导入方法. Java代码示例 [示例1]静默打印 即通过使用默认打印机直接打印PDF文档.打印时,我们可以设置打印份数,设置纸张打印页边距等. impo

  • Java生成二维码的实例代码

    使用开源的一维/二维码图形处理库zxing GitHub地址 引入依赖 <!-- https://mvnrepository.com/artifact/com.google.zxing/core --> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.0</version> &

  • Java使用正则表达式(regex)匹配中文实例代码

    只能输入中文 /** * 22.验证汉字 * 表达式 ^[\u4e00-\u9fa5]{0,}$ * 描述 只能汉字 * 匹配的例子 清清月儿 */ @Test public void a1() { Scanner sc = new Scanner(System.in); String input = sc.nextLine(); String regex = "^[\\u4e00-\\u9fa5]*$"; Matcher m = Pattern.compile(regex).matc

  • Java web的读取Excel简单实例代码

    目录结构: Data.xls数据: 后台页面: public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //System.out.println(this.getServletContext().getRealPath ("/")); try{ Workbook wb = Workbook.getWorkbook(

  • Java Web 简单的分页显示实例代码

    本文通过两个方法:(1)计算总的页数. (2)查询指定页数据,实现简单的分页效果. 思路:首先得在 DAO 对象中提供分页查询的方法,在控制层调用该方法查到指定页的数据,在表示层通过 EL 表达式和 JSTL 将该页数据显示出来. 先给大家展示下效果图: 题外话:该分页显示是用 "表示层-控制层-DAO层-数据库"的设计思想实现的,有什么需要改进的地方大家提出来,共同学习进步.废话不多说了,开始进入主题,详细步骤如下所示: 1.DAO层-数据库 JDBCUtils 类用于打开和关闭数据

  • java 日期各种格式之间的相互转换实例代码

    java 日期各种格式之间的相互转换实例代码 java日期各种格式之间的相互转换,直接调用静态方法 实例代码: java日期各种格式之间的相互转换,直接调用静态方法 package com.hxhk.cc.util; import java.text.SimpleDateFormat; import java.util.Date; import com.lowagie.text.pdf.codec.postscript.ParseException; public class DateUtil

  • java 文件大数据Excel下载实例代码

    java 文件大数据Excel下载实例代码 excel可以用xml表示.故可以以此来实现边写边下载文件 package com.tydic.qop.controller; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.I

随机推荐