谁有现成的列子不给我一个  谢谢了 急

解决方案 »

  1.   

    JDK1.6新增了一个java.awt.SystemTray来实现托盘图标。
    JDK1.5的得用windows的API来实现了。
      

  2.   

    package main;
    import org.eclipse.swt.layout.GridLayout;
    import java.util.Timer;
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.events.SelectionEvent;
    import org.eclipse.swt.events.SelectionListener;
    import org.eclipse.swt.events.ShellListener;
    import org.eclipse.swt.graphics.Image;
    import org.eclipse.swt.internal.win32.OS;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Event;
    import org.eclipse.swt.widgets.Listener;
    import org.eclipse.swt.widgets.Menu;
    import org.eclipse.swt.widgets.MenuItem;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.widgets.Tray;
    import org.eclipse.swt.widgets.TrayItem;
    /**系统托盘
     * @author Administrator
     *
     */
    public class SystemTray extends Shell{ public SystemTray(){}
    /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    try {
                Display display = Display.getDefault();
                SystemTray shell = new SystemTray(display, SWT.MIN | SWT.CLOSE);
                shell.createSystemTray(shell);           
                
                shell.setLayout(new GridLayout(2, true));
                shell.setImage(new org.eclipse.swt.graphics.Image(Display.getCurrent(),"img/rssGui.gif"));
                shell.controlInit(shell);
    //          shell.open();          
                shell.layout();
    //          shell.setVisible(false); //不显示窗体            
                while (!shell.isDisposed()) {
                    if (!display.readAndDispatch())
                        display.sleep();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
    }
     int is=-1;
      public SystemTray(Display display, int style) {
            super(display, style);
            createContents();
        }
      protected void createContents() {
            setText("SWT Application");
            setSize(200,375);    
           
        }
      public void controlInit(SystemTray shell){          
    //        new Button(shell, SWT.PUSH).setText("启动");
      }
      protected void checkSubclass() {
            // Disable the check that prevents subclassing of SWT components
        }     public void createSystemTray(final Shell shell) {
            // 下面两句的效果是:在任务栏不显示
            final int hWnd = shell.handle;
            OS.SetWindowLong(hWnd, OS.GWL_EXSTYLE, OS.WS_EX_CAPTIONOKBTN);
            shell.addShellListener(new ShellListener() {
                public void shellDeactivated(org.eclipse.swt.events.ShellEvent e) {
                    System.out.println("shellDeactivated"); //失去焦点
                }             public void shellActivated(org.eclipse.swt.events.ShellEvent e) {
                    System.out.println("shellActivated"); //获得焦点
                }             public void shellClosed(org.eclipse.swt.events.ShellEvent e) {
                    System.out.println("shellClosed");
                }             /**
                 * Sent when a shell is un-minimized.
                 */
                public void shellDeiconified(org.eclipse.swt.events.ShellEvent e) {
                    System.out.println("shellDeiconified");
                }             /**
                 * Sent when a shell is minimized. Shell 最小化后事件
                 */
                public void shellIconified(org.eclipse.swt.events.ShellEvent e) {
                    // 最小化时不显示在任务栏
                    shell.setVisible(false);
                    System.out.println("shell.setVisible(false);");
                }
            });
            
            //系统托盘
            Display display = shell.getDisplay();
            // Image image = new Image (display, 16, 16);
            Image image = new Image(display, "img/rssGui.gif");
            final Tray tray = display.getSystemTray();         
            final TrayItem trayItem = new TrayItem(tray, SWT.NONE);
            trayItem.setToolTipText("SWT TrayItem");
    //         trayItem.addListener(SWT.Show, new Listener() {
    //             public void handleEvent(Event event) {
    //                 System.out.println("show");
    //             }
    //         });
    //         trayItem.addListener(SWT.Hide, new Listener() {
    //             public void handleEvent(Event event) {
    //                 System.out.println("hide");
    //             }
    //         });         // 托盘单击事件
    //         trayItem.addListener(SWT.Selection, new Listener() {
    //             public void handleEvent(Event event) {
    //                 System.out.println("selection");
    //                 // shell.setVisible(true);
    //                 // shell.setMinimized(false);
    //             }
    //         });         // 托盘双击事件
    //         trayItem.addListener(SWT.DefaultSelection, new Listener() {
    //             public void handleEvent(Event event) {
    //                 System.out.println("default selection");
    //                 shell.setVisible(true);
    //                 shell.setMinimized(false);
    //             }
    //         });        
            // 添加托盘右键菜单         
            final Menu menu = new Menu(shell, SWT.POP_UP);         MenuItem menuItemMaximize = new MenuItem(menu, SWT.PUSH);// 启动程序
            menuItemMaximize.setText("启动");
            menuItemMaximize.addSelectionListener(new SelectionListener() {
                public void widgetSelected(SelectionEvent e) {
                 is=0;
                 Timer timer=new Timer();    
          timer.schedule(new ListingTimerRss(),0,30000);  
                }
                public void widgetDefaultSelected(SelectionEvent e) {
                    // widgetSelected(e);
                }
            });//         MenuItem menuItemMinimize = new MenuItem(menu, SWT.PUSH);// 最小化菜单
    //         menuItemMinimize.setText("Minimize");
    //         menuItemMinimize.addSelectionListener(new SelectionListener() {
    //             public void widgetSelected(SelectionEvent e) {
    //                 shell.setMinimized(true);
    //             }
    //
    //             public void widgetDefaultSelected(SelectionEvent e) {
    //                 // widgetSelected(e);
    //             }
    //         });         new MenuItem(menu, SWT.SEPARATOR);// 分割条         MenuItem menuItemClose = new MenuItem(menu, SWT.PUSH);// 关闭菜单
            menuItemClose.setText("退出");
            menuItemClose.addSelectionListener(new SelectionListener() {
                public void widgetDefaultSelected(SelectionEvent e) {
                    Display.getCurrent().close();
                    System.exit(0);
                }             public void widgetSelected(SelectionEvent e) {
                    widgetDefaultSelected(e);
                }
            });         trayItem.addListener(SWT.MenuDetect, new Listener() {
                public void handleEvent(Event event) {
                    menu.setVisible(true);                 
                    if(is==0)menu.getItem(0).setEnabled(false);
                }
            });
            trayItem.setImage(image);
        }
    }需要导入一些包,最主要的是swt.jar 
      

  3.   

    需要JDK1.6才能使用
        public void systemTray(){
            createPopupMenu();
            try {
                if (java.awt.SystemTray.isSupported()) {// 判断当前平台是否支持系统托盘
                    java.awt.SystemTray  st = java.awt.SystemTray.getSystemTray();
                    Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/res/server.png"));//定义托盘图标的图片
                    java.awt.TrayIcon ti = new java.awt.TrayIcon(image);
                    ti.setToolTip("服务管理器");
                    ti.setPopupMenu(popupmenu);    //为托盘添加右键菜单
                    ti.addMouseListener(new java.awt.event.MouseAdapter() {
                        public void mouseClicked(java.awt.event.MouseEvent evt) {
                            if (evt.getClickCount()==2){
                                OpenServer();
                            }
                        }
                    });
                    st.add(ti);
                }
            } catch (Exception e) {
                
            }
        }
      

  4.   

    SWT包,支持JDK1.5
    需要包的话QQ:617736906