请教如何将界面作成最小化到托盘的效果

解决方案 »

  1.   

    可以参考下面两个开源项目:
    1.Windows Tray Icon ( http://jeans.studentenweb.org/java/trayicon/trayicon.html )
    2.SysTray for Java ( http://systray.sourceforge.net/ )
     
    这里有一段引用例子:
    import java.awt.*;
    import java.awt.event.*;
    import java.io.InputStream;
    import java.net.URI;public class GoMustang
    {
       private TrayIcon trayIcon;
       private String actionMessage = "...";
       
       public static void main (String [] args) throws Exception
       {
          
         SplashScreen splashScreen = SplashScreen.getSplashScreen ();
          if (splashScreen != null)
          {
             pause(3000);
             splashScreen.close();
          }
         
          GoMustang mustang = new GoMustang();
          mustang.createTrayIcon();
       }   public void createTrayIcon() throws Exception
       {
          if (SystemTray.isSupported ())
          {
            System.out.println("System Tray Supported. Creating TrayIcon...");
                
            // create launch browser menu item
            MenuItem launchBrowserItem = new MenuItem("Launch Browser");
            // create action listener for lauch browswer menu item
            ActionListener launchListener = new ActionListener() 
            {
                public void actionPerformed(ActionEvent e) 
                {
                  if (Desktop.isDesktopSupported()) 
                  {
                     actionMessage = "Launched Browser";
                     try
                     {
                        trayIcon.displayMessage("GoMustang!","Lauching Browser...", TrayIcon.MessageType.INFO);
                        Desktop desktop = Desktop.getDesktop();
                        desktop.browse(new URI("http://localhost/"));
                        trayIcon.setToolTip("GoMustang!");
                     }
                     catch(Exception exp)
                     {                 
                     }
                  }
                }
            };        
            // add listener to launch browser menu item
            launchBrowserItem.addActionListener(launchListener);        // create exit menu item
            MenuItem exitItem = new MenuItem("Exit");
            // create action listeners for exit menu items
            ActionListener exitListener = new ActionListener() 
            {
                public void actionPerformed(ActionEvent e) 
                {
                    System.exit(0);
                }
            };
            // add action listener to exit menu item
            exitItem.addActionListener(exitListener);
            
            // create popup menu
            PopupMenu popup = new PopupMenu();        // Add exit and launch browser menu items to Popup Menu
            // Order in which MenuItems are added to PopupMenu determines the order in which they are displayed
            popup.add(launchBrowserItem);
            System.out.println("Added Launch Browser MenuItem To PopupMenu");
            
            // add exit menutime to popup
            popup.add(exitItem);
            System.out.println("Added Exit MenuItem To PopupMenu");
                    
            // Get the tray icon's image from JAR 
            InputStream in = getClass().getResourceAsStream("gomustang.gif");
            byte buffer[] = new byte[in.available()];
            for (int i = 0, n = in.available(); i<n; i++)
                buffer[i] = (byte)in.read();        
            Image image = Toolkit.getDefaultToolkit().createImage(buffer);
            System.out.println("Retreived TrayIcon Image From JAR");        // Create system tray Icon with Image, title text and Popup menu we just created
            trayIcon = new TrayIcon(image, "Go Mustang!", popup);
            
            // The imagesize adjusts to available space
            trayIcon.setImageAutoSize(true);
            
            // Create Action Listeners. It displays the Message
            ActionListener actionListener = new ActionListener() 
            {
                public void actionPerformed(ActionEvent e) 
                {
                    trayIcon.displayMessage("Latest Gallops", actionMessage, TrayIcon.MessageType.INFO);
                }
            };
            trayIcon.addActionListener(actionListener);
            System.out.println("Added ActionListener To TrayIcon");        
            // create Mouse Listeners. These currently do not do much
            MouseListener mouseListener = new MouseListener() 
            {
                public void mouseClicked(MouseEvent e) 
                {
                    System.out.println("TrayIcon - Mouse Clicked");                 
                }            public void mouseEntered(MouseEvent e) 
                {
                    System.out.println("TrayIcon - Mouse Entered");                 
                }            public void mouseExited(MouseEvent e) 
                {
                    System.out.println("TrayIcon - Mouse Exited");                 
                }            public void mousePressed(MouseEvent e) 
                {
                    System.out.println("TrayIcon - Mouse Pressed");                 
                }            public void mouseReleased(MouseEvent e) 
                {
                    System.out.println("TrayIcon - Mouse Released");                 
                }
            };
            trayIcon.addMouseListener(mouseListener);
            System.out.println("Added MouseListener To TrayIcon");        SystemTray systemTray = SystemTray.getSystemTray();
            systemTray.add(trayIcon);
            System.out.println("...TrayIcon Successfully Added To SystemTray");
        }
        else
        {
            System.out.println ("SystemTray Not Supported By Operating System");
        }
       }
       
       public static void pause(int milliSeconds) throws Exception
       { 
          System.out.println("Pausing For " + milliSeconds/1000 + " Seconds...");      
          Thread.sleep (milliSeconds); // Pause milli seconds 
       }
    }
      

  2.   

    去看了一下SysTray for Java,非常方便!