如何将swing面板启动时直接启动到托盘,而不是任务栏
就像QQ一样,最小化也是到托盘

解决方案 »

  1.   

    /*
     * MyIcon.java
     *
     * Created on 2007年5月7日, 下午9:11
     *
     * To change this template, choose Tools | Template Manager
     * and open the template in the editor.
     */package snetdraw.ui;import java.awt.AWTException;
    import java.awt.Image;
    import java.awt.SystemTray;
    import java.awt.TrayIcon;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;/**
     *
     * @author Administrator
     */
    public class MyIcon extends Thread{
        private String path;
        private String tip;
        private Image img;
        private TrayIcon icon;
        private SystemTray tray;
        private java.awt.PopupMenu menu;
        /** Creates a new instance of MyIcon */
        public MyIcon(String path) {
            this.setPath(path);
            menu=new java.awt.PopupMenu();
            java.awt.MenuItem item=new java.awt.MenuItem("退出");
            java.awt.MenuItem item_open=new java.awt.MenuItem("打开");
            menu.add(item_open);
            menu.add(item);
            item.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
                    System.exit(0);
                }
            });
            item_open.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
                    //Main.getMainFrame().setVisible(true);
                }
            });
        }
        public void run(){
            show();
        }
        public void setTip(String tip){this.tip=tip;}
        public String getTip(){return tip;}
        public boolean show(){
            img=new javax.swing.ImageIcon(path).getImage();
            tray=SystemTray.getSystemTray();
            java.awt.Dimension dim=tray.getTrayIconSize();
            img=img.getScaledInstance(dim.width,dim.height,Image.SCALE_SMOOTH);
            icon=new TrayIcon(img,tip);
            icon.setPopupMenu(menu);
            try {
                tray.add(icon);
                return true;
            } catch (AWTException ex) {
                ex.printStackTrace();
            }
            return false;
        }
        public String getPath(){return path;}
        public void setPath(String path){this.path=path;}    public Image getImg() {
            return img;
        }    public void setImg(Image img) {
            this.img = img;
        }    public TrayIcon getIcon() {
            return icon;
        }    public void setIcon(TrayIcon icon) {
            this.icon = icon;
        }
    }
      

  2.   

    SE6里好像可以,6.0之前的版本好像只能jni来实现了