Java使窗口最小化为图标

2014-11-24 02:38:55 · 作者: · 浏览: 2

最小化时隐藏,在图标上点右右键选择显示窗口时,让窗口显示出来


  import java.awt.AWTException;


  import java.awt.Image;


  import java.awt.MenuItem;


  import java.awt.SystemTray;


  import java.awt.Toolkit;


  import java.awt.TrayIcon;


  import java.awt.event.ActionEvent;


  import java.awt.event.ActionListener;


  import java.awt.image.BufferedImage;


  import java.io.File;


  import java.io.IOException;


  import javax.imageio.ImageIO;


  public class SystemTrayTest extends Thread {


  TrayIcon st;


  SystemTray tray =null;


  //javax.swing.Popup p;


  java.awt.PopupMenu popup;


  MenuItem mi1,mi2;


  msgbox m=null;


  public void getm(msgbox m){


  this.m=m;


  }


  public void run() {


  // TODO Auto-generated method stub


  super.run();


  if (SystemTray.isSupported()) {


  // get the SystemTray instance


  tray = SystemTray.getSystemTray();


  // load an image


  String test = System.getProperty("user.dir").replace('\\', '/');


  BufferedImage src = null;


  try {


  src = ImageIO.read(new File(test + "\\logo.jpg"));


  } catch (IOException e) {


  // TODO Auto-generated catch block


  e.printStackTrace();


  } // 读入源图像


  //


  Image image = Toolkit.getDefaultToolkit().getImage(test + "\\logo.jpg");


  // create a action listener to listen for default action executed on


  // the tray icon


  popup=new java.awt.PopupMenu();


  mi1=new MenuItem("显示窗口");


  mi2=new MenuItem("---");


  popup.add(mi1);


  popup.add(mi2);


  mi1.addActionListener(new ActionListener(){


  public void actionPerformed(ActionEvent e) {


  // TODO Auto-generated method stub


  m.setVisible(true);


  System.out.println("open");


  }


  });


  mi2.addActionListener(new ActionListener(){


  public void actionPerformed(ActionEvent e) {


  // TODO Auto-generated method stub


  //System.out.println("close");


  //System.exit(0);


  }


  });


  st = new TrayIcon(image, "Tray Demo", popup);


  try {


  tray.add(st);


  } catch (AWTException e) {


  e.printStackTrace();


  }


  }


  }


  public static void main(String[] args) {


  new SystemTrayTest().start();


  }


  }


  //使窗口最小化,并隐藏


  public void windowIconified(WindowEvent e) {


  System.out.print("sssssss");


  jf.setVisible(false);


  System.out.print(""+e+" "+e.getClass()+" "+e.getNewState());


  }