javaはショートカットツールパレットを実現します。


  • Runntimeクラスの実践アプリケーション
  • 自分でDIYのショートカットツールトレイを作ります。例えば、各種システムツールを開けて、タイムオフ、再起動、睡眠、ファイル操作などを行います。
     
    ステップ:
  • は、Runtimeオブジェクト
  • を取得する。
  • システムトレイ
  • を作成します。
  • トレイメニューを作成する
  • メニューバインディングコマンド
  •  
    注意事項:
  • アイコンパスの変更に注意してください。そうでなければ、生成されたパレットにはアイコン
  • がありません。
  • eclipse環境が運行すると、文字化けが発生する可能性があります。運行環境の設定を変更すると、コードが解決できます。
  • 本例ではテキストファイルを作成しますので、自分で
  • を削除してください。
  • この例は基本的な考え方だけを表しています。必要があれば、自分で拡張して改善してください。
  • メニューが生成される順序は、mapを使用しているので、順序なしの
  • を巡回します。
  • は、多段階メニューを追加してメニューを分類することができ、ユーザー体験がより良い
  • ができます。
  • はjarのカバンやexeに打てます。普段は
  • を使いやすいです。
    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;  
    import java.util.TreeMap;
    /** 
     *           
     */  
    public class SystemToolsTray  
    {  
        public static Runtime rt;  
        public static Map<String,String> commandMap=new TreeMap<String, String>();  
          
        public static void main(String[] args) throws Exception  
        {  
            rt=Runtime.getRuntime();  //java        
            SystemTray tray = SystemTray.getSystemTray();  //        
            PopupMenu trayMenu= new PopupMenu();  //          
              
            //        
            commandMap.put("calculator", "calc");  
            commandMap.put("notepad", "notepad");  
            commandMap.put("Task Manager", "taskmgr");  
            commandMap.put("drawing tools", "mspaint");  
            commandMap.put("open QQ", "D:\\Program Files (x86)\\Tencent\\QQ\\Bin\\QQ.exe");  
            commandMap.put("create file", "cmd /c echo          />d:\\mysql.txt");  
            commandMap.put("access file", "cmd /c d:\\mysql.txt");  
            commandMap.put("scheduled shutdown", "shutdown -s -t 6000");  
            commandMap.put("cancel shutdown", "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("EXIT");  
            exitItem.addActionListener(new ActionListener() {  
               public void actionPerformed(ActionEvent e) {  
                    System.exit(0);  
                }  
            });  
            trayMenu.add(exitItem);  
              
            Image image = Toolkit.getDefaultToolkit().getImage("F:\\myfirstsite\\QQ\\ghj.jpg");  //      
            TrayIcon trayIcon = new TrayIcon(image, "    ", trayMenu);  //  trayIcon  
            tray.add(trayIcon);  
        }  
    }