JAVA应用系统工具快捷托盘实例代码
程序员文章站
2023-12-06 09:27:28
1.打开各种系统工具 2.定时关机(重...
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包供大家使用。
上一篇: 收集的一些常用java正则表达式