어떻게 자바 프로그램 을 시스템 트 레이 로 최소 화 합 니까?

아래 의 이 프로그램 은 자바 응용 프로그램 을 트 레이 로 축소 하 는 방법 을 간단하게 실현 하 였 다.
프로그램 이 실행 되 는 jdk 는 1.6 이 어야 합 니 다. 이것 은 J2SDK 1.6 에 새로 추 가 된 클래스 와 방법 이기 때 문 입 니 다.
프로그램 에서 실측 은 16 * 16 의 그림 이 어야 합 니 다.
import java.awt.*;
import java.io.*;
import javax.swing.*;
import java.awt.event.*;
import javax.imageio.ImageIO;

public class Test extends JFrame{
    private TrayIcon trayIcon;//    
    private SystemTray systemTray;//    
         
    public Test()
    {
        super("      ");
        systemTray = SystemTray.getSystemTray();//          
        setSize(150,150); 
                this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                this.setVisible(true);    
        try {
            trayIcon = new TrayIcon(ImageIO.read(new File("0.gif")));
            systemTray.add(trayIcon);//       ,0.gif         
        }
        catch (IOException e1) {e1.printStackTrace();}
        catch (AWTException e2) {e2.printStackTrace();}
        
        this.addWindowListener(
                new WindowAdapter(){   
                    public void windowIconified(WindowEvent e){   
                        dispose();//      dispose    
                    }   
                });
        
        trayIcon.addMouseListener(
                new MouseAdapter(){
                    public void mouseClicked(MouseEvent e){
                        if(e.getClickCount() == 2)//        
                            setExtendedState(Frame.NORMAL);
                            setVisible(true);
                    }
                });        
    }  

    public static void main(String args[])
    {
        new Test();
    }
}
package awt;

import java.awt.AWTException;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.TrayIcon;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.ImageIcon;
import javax.swing.JFrame;


public class TrayDemo extends JFrame {

private TrayIcon trayIcon = null; //     

private SystemTray tray = null; //           

public static TrayDemo trayDemo = new TrayDemo();

private TrayDemo() {
   init();
}

public void init() {
   if (SystemTray.isSupported()) { //           
    this.tray();
   }
   this.setSize(300, 200);  
   this.setResizable(false);
   //            
   addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
     System.exit(0);
    }

    public void windowIconified(WindowEvent e) {    
     try {
      tray.add(trayIcon); //                 
      //setVisible(false); //       
      dispose();
     } catch (AWTException ex) {
      ex.printStackTrace();
     }
    }   
   });

}

private void tray() {

   tray = SystemTray.getSystemTray(); //             
   ImageIcon icon = new ImageIcon("images/30.gif"); //            

   PopupMenu pop = new PopupMenu(); //            
   MenuItem show = new MenuItem("    (s)");
   MenuItem exit = new MenuItem("    (x)");
   pop.add(show);
   pop.add(exit);
   trayIcon = new TrayIcon(icon.getImage(), "      ", pop);

   /**
   *        ,            ,      
   */
   trayIcon.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent e) {
     if (e.getClickCount() == 2) { //     
      tray.remove(trayIcon); //                
      setExtendedState(JFrame.NORMAL);
      setVisible(true); //     
      toFront();     
     }
    }
   });
   show.addActionListener(new ActionListener() { //   “    ”          
      public void actionPerformed(ActionEvent e) {
       tray.remove(trayIcon); //                
       setExtendedState(JFrame.NORMAL);
       setVisible(true); //     
       toFront();
      }
     });
   exit.addActionListener(new ActionListener() { //   “    ”       
      public void actionPerformed(ActionEvent e) {
       System.exit(0); //     
      }
     });

}

/**
*     
*/
//          
public static TrayDemo getInstanceTrayDemo() {
   return trayDemo;
}

//       

}

좋은 웹페이지 즐겨찾기