现在的位置: 首页 > 综合 > 正文

java Swing 实现将系统最小化到系统托盘

2013年09月22日 ⁄ 综合 ⁄ 共 6679字 ⁄ 字号 评论关闭
  1. 源码:
  2. /*
     
  3.  * MainFrame.java
     
  4.  *
     
  5.  * Created on 2008年9月20日, 上午11:44
     
  6.  */
      
  7.   
  8. package
     com.topking.tray.ui;  
  9.   
  10. import
     java.awt.AWTException;  
  11. import
     java.awt.Image;  
  12. import
     java.awt.MenuItem;  
  13. import
     java.awt.PopupMenu;  
  14. import
     java.awt.SystemTray;  
  15. import
     java.awt.TrayIcon;  
  16. import
     java.awt.event.ActionEvent;  
  17. import
     java.awt.event.ActionListener;  
  18. import
     java.awt.event.MouseEvent;  
  19. import
     java.awt.event.MouseListener;  
  20. import
     java.awt.event.WindowEvent;  
  21. import
     java.awt.event.WindowListener;  
  22.   
  23. import
     javax.swing.ImageIcon;  
  24.   
  25. /**
     
  26.  *
     
  27.  * @author  lzkj
     
  28.  */
      
  29. public
     
    class
     MainFrame 
    extends
     javax.swing.JFrame 
    implements
     ActionListener, WindowListener{  
  30.   
  31.     // Variables declaration - do not modify
      
  32.     private
     javax.swing.JLabel L_img;  
  33.     private
     javax.swing.JLabel L_img2;  
  34.     private
     PopupMenu pop;  
  35.     private
     MenuItem open,close;  
  36.     private
     TrayIcon trayicon;  
  37.     // End of variables declaration
      
  38.   
  39.       
  40.     /** Creates new form MainFrame */
      
  41.     public
     MainFrame() {  
  42.         this
    .setTitle(
    "Java实现系统托盘示例"
    );  
  43.         this
    .setLocation(
    300
    ,
    300
    );  
  44.         initComponents();  
  45.     }  
  46.   
  47.     /** This method is called from within the constructor to
     
  48.      * initialize the form.
     
  49.      * WARNING: Do NOT modify this code. The content of this method is
     
  50.      * always regenerated by the Form Editor.
     
  51.      */
      
  52.     @SuppressWarnings
    (
    "unchecked"
    )  
  53.     // <editor-fold defaultstate="collapsed" desc="Generated Code">
      
  54.     private
     
    void
     initComponents() {  
  55.                   
  56. //        L_img = new javax.swing.JLabel(new ImageIcon((MainFrame.class).getResource("com/topking/tray/images/netbean1.png")));        
      
  57. //        L_img2 = new javax.swing.JLabel(new ImageIcon((MainFrame.class).getResource("com/topking/tray/images/netbean2.png")));
      
  58.         L_img = new
     javax.swing.JLabel(
    new
     ImageIcon(
    this
    .getClass().getClassLoader().getResource(
    "com/topking/tray/images/netbean1.png"
    )));          
  59.         L_img2 = new
     javax.swing.JLabel(
    new
     ImageIcon(
    this
    .getClass().getClassLoader().getResource(
    "com/topking/tray/images/netbean2.png"
    )));    
  60.   
  61.   
  62.         pop = new
     PopupMenu();  
  63.         open = new
     MenuItem(
    "打开"
    );  
  64.         open.addActionListener(this
    );  
  65.           
  66.         close = new
     MenuItem(
    "关闭"
    );  
  67.         close.addActionListener(this
    );  
  68.           
  69.         pop.add(open);  
  70.         pop.add(close);         
  71.         
  72.         if
    (SystemTray.isSupported()){  
  73.             SystemTray tray = SystemTray.getSystemTray();  
  74.             Image icon = this
    .getToolkit().getImage(
    this
    .getClass().getClassLoader().getResource(
    "com/topking/tray/images/user_edit.png"
    ));  
  75.             trayicon = new
     TrayIcon(icon,
    "系统托盘示例(java)"
    ,pop);  
  76.             trayicon.addMouseListener(new
     MouseListener(){  
  77.   
  78.                 public
     
    void
     mouseClicked(MouseEvent e) {  
  79.                     // TODO Auto-generated method stub
      
  80.                     if
    (e.getClickCount()==
    2
    ){  
  81.                         openFrame();  
  82.                     }  
  83.                 }  
  84.   
  85.                 public
     
    void
     mouseEntered(MouseEvent e) {  
  86.                     // TODO Auto-generated method stub
      
  87.                       
  88.                 }  
  89.   
  90.                 public
     
    void
     mouseExited(MouseEvent e) {  
  91.                     // TODO Auto-generated method stub
      
  92.                       
  93.                 }  
  94.   
  95.                 public
     
    void
     mousePressed(MouseEvent e) {  
  96.                     // TODO Auto-generated method stub
      
  97.                       
  98.                 }  
  99.   
  100.                 public
     
    void
     mouseReleased(MouseEvent e) {  
  101.                     // TODO Auto-generated method stub
      
  102.                       
  103.                 }  
  104.                   
  105.             });  
  106.               
  107.             try
     {  
  108.                 tray.add(trayicon);  
  109.             } catch
     (AWTException e) {  
  110.                 // TODO Auto-generated catch block
      
  111.                 e.printStackTrace();  
  112.             }  
  113.         }  
  114.   
  115.         javax.swing.GroupLayout layout = new
     javax.swing.GroupLayout(getContentPane());  
  116.         getContentPane().setLayout(layout);  
  117.         layout.setHorizontalGroup(  
  118.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)  
  119.             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()  
  120.                 .addContainerGap()  
  121.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)  
  122.                     .addComponent(L_img2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 380
    , Short.MAX_VALUE)  
  123.                     .addComponent(L_img, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 380
    , Short.MAX_VALUE))  
  124.                 .addContainerGap())  
  125.         );  
  126.         layout.setVerticalGroup(  
  127.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)  
  128.             .addGroup(layout.createSequentialGroup()  
  129.                 .addContainerGap()  
  130.                 .addComponent(L_img)  
  131.                 .addGap(29

    29

    29
    )  
  132.                 .addComponent(L_img2, javax.swing.GroupLayout.PREFERRED_SIZE, 222
    , javax.swing.GroupLayout.PREFERRED_SIZE)  
  133.                 .addContainerGap(39
    , Short.MAX_VALUE))  
  134.         );  
  135.   
  136.         pack();  
  137.     }// </editor-fold>
      
  138.   
  139.     /**
     
  140.     * @param args the command line arguments
     
  141.     */
      
  142.     public
     
    static
     
    void
     main(String args[]) {  
  143.         java.awt.EventQueue.invokeLater(new
     Runnable() {  
  144.             public
     
    void
     run() {  
  145.                 new
     MainFrame().setVisible(
    true
    );  
  146.             }  
  147.         });  
  148.     }  
  149.   
  150.     public
     
    void
     actionPerformed(ActionEvent e) {  
  151.         // TODO Auto-generated method stub
      
  152.         if
    (e.getSource()==open){  
  153.             openFrame();  
  154.         }  
  155.         if
    (e.getSource()==close){  
  156.             System.exit(-1
    );  
  157.         }  
  158.     }  
  159.   
  160.     public
     
    void
     openFrame(){  
  161.         this
    .setVisible(
    true
    );  
  162.         this
    .setAlwaysOnTop(
    true
    );  
  163.     }  
  164.     public
     
    void
     windowActivated(WindowEvent arg0) {  
  165.         // TODO Auto-generated method stub
      
  166.           
  167.     }  
  168.   
  169.     public
     
    void
     windowClosed(WindowEvent arg0) {  
  170.         // TODO Auto-generated method stub
      
  171.         this
    .setVisible(
    false
    );  
  172.         this
    .dispose();  
  173.     }  
  174.   
  175.     public
     
    void
     windowClosing(WindowEvent arg0) {  
  176.         // TODO Auto-generated method stub
      
  177.           
  178.     }  
  179.   
  180.     public
     
    void
     windowDeactivated(WindowEvent arg0) {  
  181.         // TODO Auto-generated method stub
      
  182.           
  183.     }  
  184.   
  185.     public
     
    void
     windowDeiconified(WindowEvent arg0) {  
  186.         // TODO Auto-generated method stub
      
  187.           
  188.     }  
  189.   
  190.     //窗口最小化
      
  191.     public
     
    void
     windowIconified(WindowEvent arg0) {  
  192.         // TODO Auto-generated method stub      
      
  193.         this
    .dispose();  
  194.     }  
  195.   
  196.     public
     
    void
     windowOpened(WindowEvent arg0) {  
  197.         // TODO Auto-generated method stub
      
  198.           
  199.     }  
  200.   
  201.       

抱歉!评论已关闭.