JAVA應(yīng)用系統(tǒng)工具快捷托盤實(shí)例代碼
1.打開各種系統(tǒng)工具
2.定時關(guān)機(jī)(重啟、睡眠未實(shí)現(xiàn) 請參照上面兩個文章自行擴(kuò)展)
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
* 系統(tǒng)工具快捷托盤
*/
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運(yùn)行環(huán)境實(shí)例
SystemTray tray = SystemTray.getSystemTray(); //創(chuàng)建系統(tǒng)托盤
PopupMenu trayMenu= new PopupMenu(); //創(chuàng)建托盤右鍵菜單
//初始化命令庫
commandMap.put("計(jì)算器", "calc");
commandMap.put("記事本", "notepad");
commandMap.put("任務(wù)管理器", "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("定時關(guān)機(jī)", "shutdown -s -t 600");
commandMap.put("取消關(guān)機(jī)", "shutdown -a");
//自動生成托盤右鍵菜單并綁定事件(執(zhí)行命令)
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); //創(chuàng)建trayIcon
tray.add(trayIcon);
}
}
注意:
1.記得改成自己的圖標(biāo)路徑,否則生成的托盤沒有圖標(biāo)(好似沒效果)
2.eclipse環(huán)境運(yùn)行的時候可能會出現(xiàn)亂碼問題,改變運(yùn)行環(huán)境配置中的編碼可以解決。
3.由于只是一個演示程序(體現(xiàn)的是基本思路),并沒有做到很完善,如果喜歡可自行完善
a.菜單生成的順序可能是亂序,因?yàn)槭褂玫氖莔ap,遍歷出來的是無序的。
b.可以加多級菜單 對菜單進(jìn)行分類,這樣用戶體驗(yàn)會好些。
c.可以打成jar包 或者 exe 方便平時使用。
d.其他用戶體驗(yàn) 和 性能方面的完善。(這里就不具體說了)
4.如果有時間的話我會將這個程序完善,并打成jar包供大家使用。
相關(guān)文章
Java?C++算法題解leetcode801使序列遞增的最小交換次數(shù)
這篇文章主要為大家介紹了Java?C++題解leetcode801使序列遞增的最小交換次數(shù)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10Java語言的Comparable和Comparator區(qū)別
這篇文章主要介紹了Java語言的Comparable和Comparator區(qū)別,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06Java中操作Xml使用方法備忘錄(Hutool工具類XmlUtil、XStream)
這篇文章主要給大家介紹了關(guān)于Java中操作Xml使用方法(Hutool工具類XmlUtil、XStream)的相關(guān)資料,XMLUtil是一個工具類,主要用于讀取XML配置文件并提供相應(yīng)的操作方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11SpringBoot集成Redis實(shí)現(xiàn)驗(yàn)證碼的簡單案例
本文主要介紹了SpringBoot集成Redis實(shí)現(xiàn)驗(yàn)證碼的簡單案例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08java跳出循環(huán)的三種方式總結(jié)(break語句、continue語句和return語句)
在實(shí)際編程中,有時需要在條件語句匹配的時候跳出循環(huán),下面這篇文章主要給大家介紹了關(guān)于java跳出循環(huán)的三種方式,其中包括break語句、continue語句和return語句的相關(guān)資料,需要的朋友可以參考下2023-03-03Java實(shí)現(xiàn)微信公眾號獲取臨時二維碼功能示例
這篇文章主要介紹了Java實(shí)現(xiàn)微信公眾號獲取臨時二維碼功能,結(jié)合實(shí)例形式分析了java調(diào)用微信公眾號接口實(shí)現(xiàn)臨時二維碼生成功能相關(guān)操作技巧,需要的朋友可以參考下2019-10-10