Java1.6.0实现GUI系统托盘技术演示代码(附详细注释)

发布于 2022-09-05 22:52:51 字数 6315 浏览 12 评论 0

  1. import java.awt.AWTException;
  2. import java.awt.MenuItem;
  3. import java.awt.PopupMenu;
  4. import java.awt.SystemTray;
  5. import java.awt.TrayIcon;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8. import java.awt.event.MouseAdapter;
  9. import java.awt.event.MouseEvent;
  10. import javax.swing.ImageIcon;
  11. import javax.swing.JButton;
  12. import javax.swing.JFrame;
  13. import javax.swing.JLabel;
  14. import javax.swing.JOptionPane;
  15. import javax.swing.JPanel;
  16. import javax.swing.UIManager;
  17. import javax.swing.UnsupportedLookAndFeelException;
  18. /**
  19. * Java1.6.0实现系统托盘技术演示
  20. *
  21. * @author 五斗米 <如转载请保留作者和出处>
  22. * @blog https://www.wenjiangs.com/wp-content/uploads/chinaunix/202206/icon.gif"); // 将要显示到托盘中的图标
  23.         PopupMenu pop = new PopupMenu(); // 构造一个右键弹出式菜单
  24.         MenuItem show = new MenuItem("显示窗口");
  25.         MenuItem exit = new MenuItem("退出演示");
  26.         MenuItem author = new MenuItem("Author");
  27.         /**
  28.          * TrayIcon有三个构造
  29.          * TrayIcon(Image image) 用“图标”来构造
  30.          * TrayIcon(Image image, String tooltip) 用“图标”和“ToolTip”构造
  31.          * TrayIcon(Image image, String tooltip, PopupMenu popup) 用“图标”,“ToolTip”,“弹出菜单”来构造一个托盘图标
  32.          */
  33.         trayIcon = new TrayIcon(icon.getImage(), "Java1.6.0托盘技术演示", pop);
  34.         // 点击本按钮后窗口被关闭,托盘图标被添加到系统的托盘中
  35.         button.addActionListener(new ActionListener() {
  36.             public void actionPerformed(ActionEvent e) {
  37.                 try {
  38.                     tray.add(trayIcon); // 将托盘图标添加到系统的托盘实例中
  39.                     setVisible(false); // 使窗口不可视
  40.                 } catch (AWTException ex) {
  41.                     ex.printStackTrace();
  42.                 }
  43.             }
  44.         });
  45.         /**
  46.          * 添加鼠标监听器,当鼠标在托盘图标上双击时,默认显示窗口
  47.          */
  48.         trayIcon.addMouseListener(new MouseAdapter() {
  49.             public void mouseClicked(MouseEvent e) {
  50.                 if(e.getClickCount()==2){ // 鼠标双击
  51.                     tray.remove(trayIcon); // 从系统的托盘实例中移除托盘图标
  52.                     setVisible(true); // 显示窗口
  53.                 }
  54.             }
  55.         });
  56.         show.addActionListener(new ActionListener() { // 点击“显示窗口”菜单后将窗口显示出来
  57.             public void actionPerformed(ActionEvent e) {
  58.                 tray.remove(trayIcon); // 从系统的托盘实例中移除托盘图标
  59.                 setVisible(true); // 显示窗口
  60.             }
  61.         });
  62.         exit.addActionListener(new ActionListener() { // 点击“退出演示”菜单后退出程序
  63.             public void actionPerformed(ActionEvent e) {
  64.                 System.exit(0); // 退出程序
  65.             }
  66.         });
  67.         author.addActionListener(new ActionListener() {
  68.             public void actionPerformed(ActionEvent e) {
  69.                 showMessage();
  70.             }
  71.         });
  72.         pop.add(show);
  73.         pop.add(exit);
  74.         pop.add(author);
  75.     }
  76.     /**
  77.      * 显示信息
  78.      */
  79.     private void showMessage(){
  80.         JOptionPane.showMessageDialog(this,
  81.                 new JLabel("<html>作者:mq612(五斗米)<br>Blog:http://blog.csdn.net/mq612</html>"),
  82.                        "五斗米", JOptionPane.INFORMATION_MESSAGE);
  83.     }
  84.    
  85.     public static void main(String[] args) {
  86.         new TrayDemo();
  87.     }
  88.    
  89. }

复制代码

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文