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