使用Java实现系统托盘功能的介绍(附源码以及截图)

 更新时间:2013年05月06日 18:13:36   作者:  
本篇文章介绍了,在Java中实现系统托盘功能的详解,文中附源码以及截图介绍。需要的朋友参考下

Java中如何,实现系统托盘功能.

示例图

项目包结构图

 

系统运行截图

应用核心逻辑说明,隐藏到托盘实质就是讲窗体隐藏.即setVisible(false),显示窗体即就是讲setVisible(true).

项目代码如下:

复制代码 代码如下:

package org.pdp.frame;

 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.net.URL;

 import javax.swing.ImageIcon;
 import javax.swing.JFrame;
 import javax.swing.JMenu;
 import javax.swing.JMenuBar;
 import javax.swing.JMenuItem;

 
 public class MainFrame extends JFrame implements ActionListener{

     private static final long serialVersionUID = -7078030311369039390L;
     private JMenu menu;
     private JMenuBar jmenuBar;
     private String [] jmItemName = {"置于托盘","系统退出"};

     public MainFrame(){
         super("电话薄");
         init();
         this.setSize(500,400);
         this.setJMenuBar(jmenuBar);
         this.setLocationRelativeTo(null);
         systemTray();    //系统托盘
     }

     /**
      * 初始化界面
      */
     public void init(){
         menu = new JMenu("系统窗体");
         for(int i=0; i<jmItemName.length; i++){
             JMenuItem menuItem = new JMenuItem(jmItemName[i]);
             menuItem.addActionListener(this);
             menu.add(menuItem);
         }
         this.jmenuBar = new JMenuBar();
         this.jmenuBar.add(menu);
     }

     @Override
     public void actionPerformed(ActionEvent e) {
         String actions = e.getActionCommand();
         if("置于托盘".equals(actions)){
             this.setVisible(false);
         }
         if("系统退出".equals(actions)){
             System.exit(0);
         }

     }

     /**系统托盘图标处理.*/
     private void  systemTray(){
         if(SystemTray.isSupported()){    //判断系统是否支持托盘功能.
             URL resource = this.getClass().getResource("systray.jpg");    //获得图片路径
             ImageIcon icon = new ImageIcon(resource); //创建图片对象
             PopupMenu popupMenu = new PopupMenu(); //创建弹出菜单对象
             MenuItem itemExit = new MenuItem("退出系统");    //创建弹出菜单中的退出项
             MenuItem itemShow = new MenuItem("显示窗体"); //创建弹出菜单中的显示主窗体项.
             itemExit.addActionListener(new ActionListener() {     //给退出像添加事件监听
                 @Override
                 public void actionPerformed(ActionEvent e) {
                     System.exit(0);
                 }           
             });
             itemShow.addActionListener(new ActionListener() { //给窗体最小化添加事件监听.
                 @Override
                 public void actionPerformed(ActionEvent e) {
                     setVisible(true);
                 }
             });
             popupMenu.add(itemExit);
             popupMenu.add(itemShow);
             TrayIcon trayIcon = new TrayIcon(icon.getImage(),"电话薄系统",popupMenu);
             SystemTray sysTray = SystemTray.getSystemTray();
             try {
                 sysTray.add(trayIcon);
             } catch (AWTException e1) {    }
         }
     }

     /**
      * 主方法
      * @param args
      */
     public static void main(String[] args) {

         new MainFrame().setVisible(true);

     }

 }

相关文章

  • Java实现每日给女友微信发送早安信息

    Java实现每日给女友微信发送早安信息

    这篇文章主要为大家详细介绍了Java如何实现每日给女友微信发送早安等微信信息,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以了解一下
    2022-12-12
  • java字节流、字符流与转换流过程

    java字节流、字符流与转换流过程

    输入输出流(IO流)是数据传输的抽象概念,用于表示数据在设备间的传输过程,IO流按数据类型分为字符流和字节流,按数据流向分为输入流和输出流,字节流操作单个字节,字符流操作字符,在实际应用中,非文本文件多用字节流操作
    2024-10-10
  • Java中的两种for循环介绍

    Java中的两种for循环介绍

    在学习Hibernate的时候学习一种在Java当中的for循环,估计是以前学习的时候没有记住,忘记了在这里再写下笔记
    2012-10-10
  • IntelliJ IDEA失焦自动重启服务的解决方法

    IntelliJ IDEA失焦自动重启服务的解决方法

    在使用 IntelliJ IDEA运行 SpringBoot 项目时,你可能会遇到一个令人困扰的问题,一旦你的鼠标指针离开当前IDE窗口,点击其他位置时, IDE 窗口会失去焦点,你的 SpringBoot 服务就会自动重启,所以本文给大家介绍了IntelliJ IDEA失焦自动重启服务的解决方法
    2023-10-10
  • 一个简单的Python名片管理系统

    一个简单的Python名片管理系统

    这篇文章主要为大家详细介绍了一个简单的Python名片管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 关于Dubbo初始问题

    关于Dubbo初始问题

    这篇文章主要介绍了关于Dubbo初始问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • java显示目录文件列表和删除目录功能

    java显示目录文件列表和删除目录功能

    这篇文章主要介绍了java显示目录文件列表和删除目录功能,文章通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2017-12-12
  • java WebSocket实现聊天消息推送功能

    java WebSocket实现聊天消息推送功能

    这篇文章主要为大家详细介绍了java WebSocket实现聊天消息推送功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • 如何在Springboot实现拦截器功能

    如何在Springboot实现拦截器功能

    其实spring boot拦截器的配置方式和springMVC差不多,只有一些小的改变需要注意下就ok了,下面这篇文章主要给大家介绍了关于如何在Springboot实现拦截器功能的相关资料,需要的朋友可以参考下
    2022-06-06
  • java后台处理前端传的json串方法

    java后台处理前端传的json串方法

    今天小编就为大家分享一篇java后台处理前端传的json串方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08

最新评论