基于java开发之系统托盘的应用

项目结构:

运行效果:

========================================================================

下面是代码部分

========================================================================

/tray/src/com/b510/tray托盘/DesktopCapture.java

代码如下:
package com.b510.tray托盘; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.UIManager; public class DesktopCapture extends JFrame implements ActionListener {     /**      * 1.改变双击托盘截图为单击托盘截图 2.修复了托盘后无反应BUG 3.将放大镜提示框移至左上角和右上角      */     private static final long serialVersionUID = 1L;     // JButton confirm;     // BufferedImage desktopImg;     MyTray tray;     boolean iconed = false;     public DesktopCapture() {         super("EasyCapture");         init();         // 当点击"-"最小化按钮时,系统会最小化到托盘         addWindowListener(new WindowAdapter() {             public void windowIconified(WindowEvent e) {                 iconed = true;                 setVisible(false);             }             // 当点击"X"关闭窗口按钮时,会询问用户是否要最小化到托盘             // 是,表示最小化到托盘,否,表示退出             public void windowClosing(WindowEvent e) {                 int option = JOptionPane.showConfirmDialog(DesktopCapture.this,                         "是否最小化到托盘?", "提示:", JOptionPane.YES_NO_OPTION);                 if (option == JOptionPane.YES_OPTION) {                     iconed = true;                     setVisible(false);                 } else {                     System.exit(0);                 }             }         });         pack();         setSize(350, 230);         setLocation(500, 300);         setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);         setResizable(false);         setVisible(true);     }     void init() {         tray = new MyTray(DesktopCapture.this);     }     // 截图     public void capture() {     }     public static void main(String[] args) {         // TODO Auto-generated method stub         try {             UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());             DesktopCapture desk = new DesktopCapture();         } catch (Exception e) {             // TODO Auto-generated catch block             e.printStackTrace();         }     }     @Override     public void actionPerformed(ActionEvent e) {     } }
/tray/src/com/b510/tray托盘/MyTray.java
代码如下:
package com.b510.tray托盘; import java.awt.AWTException; import java.awt.Image; 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.MouseEvent; import java.awt.event.MouseListener; import javax.swing.ImageIcon; import javax.swing.JFrame; public class MyTray implements ActionListener, MouseListener {     private Image icon;// 图标     private TrayIcon trayIcon;     private SystemTray systemTray;// 系统托盘     private DesktopCapture frame; // 托盘所属主窗体     private PopupMenu pop = new PopupMenu(); // 弹出菜单     private MenuItem capture = new MenuItem("capture");     private MenuItem show = new MenuItem("open");     private MenuItem exit = new MenuItem("exit");     public MyTray(DesktopCapture frame) {         this.frame = frame;         // icon = Toolkit.getDefaultToolkit().getImage("./images/xiaomai.png");         icon = new ImageIcon(this.getClass().getClassLoader().getResource(                 "image/xiaomai.png")).getImage();         if (SystemTray.isSupported()) {             systemTray = SystemTray.getSystemTray();             trayIcon = new TrayIcon(icon, "单击直接截图-EasyCapture", pop);             pop.add(capture);             pop.add(show);             pop.add(exit);             try {                 systemTray.add(trayIcon);             } catch (AWTException e1) {                 e1.printStackTrace();                 trayIcon.addMouseListener(this);             }         }         trayIcon.addMouseListener(this);         show.addActionListener(this);         exit.addActionListener(this);         capture.addActionListener(this);     }     @Override     public void actionPerformed(ActionEvent e) {         if (e.getSource() == show) {             frame.iconed = false;             frame.setVisible(true);             frame.setExtendedState(JFrame.NORMAL);         } else if (e.getSource() == capture) {             frame.capture();         } else {             System.exit(0);         }     }     // ����¼�     @Override     public void mouseClicked(MouseEvent e) {         if (e.getClickCount() == 1 && e.getButton() != MouseEvent.BUTTON3) {             frame.capture();         }     }     @Override     public void mouseEntered(MouseEvent arg0) {         // TODO Auto-generated method stub     }     @Override     public void mouseExited(MouseEvent arg0) {         // TODO Auto-generated method stub     }     @Override     public void mousePressed(MouseEvent arg0) {         // TODO Auto-generated method stub     }     @Override     public void mouseReleased(MouseEvent arg0) {         // TODO Auto-generated method stub     } }

以上是 基于java开发之系统托盘的应用 的全部内容, 来源链接: utcz.com/p/207860.html

回到顶部