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

所属分类: 软件编程 / java 阅读数: 100
收藏 0 赞 0 分享

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);

     }

 }

更多精彩内容其他人还在看

Spring boot将配置属性注入到bean类中

本篇文章主要介绍了Spring boot将配置属性注入到bean类中,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Java正则判断日期格式是否正确的方法示例

这篇文章主要介绍了Java正则判断日期格式是否正确的方法,结合实例形式分析了Java针对日期字符串正则判断的相关操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

java Future 接口使用方法详解

这篇文章主要介绍了java Future 接口使用方法详解,Future接口是Java线程Future模式的实现,可以来进行异步计算的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

Java 读取外部资源的方法详解及实例代码

这篇文章主要介绍了Java 读取外部资源的方法详解及实例代码的相关资料,经常有读取外部资源的要求,如配置文件等等需要读取,需要的朋友可以参考下
收藏 0 赞 0 分享

Java正则表达式之split()方法实例详解

这篇文章主要介绍了Java正则表达式之split()方法,结合实例形式较为详细的分析了split方法的功能、使用方法及相关注意事项,需要的朋友可以参考下
收藏 0 赞 0 分享

Java 存储模型和共享对象详解

这篇文章主要介绍了Java 存储模型和共享对象详解的相关资料,对Java存储模型,可见性和安全发布的问题是起源于Java的存储结构及共享对象安全,需要的朋友可以参考下
收藏 0 赞 0 分享

Java使用正则表达式实现找出数字功能示例

这篇文章主要介绍了Java使用正则表达式实现找出数字功能,结合实例形式分析了Java针对数字的匹配查找及非数字替换操作相关实现技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

Spring核心IoC和AOP的理解

本文主要介绍了Spring核心IoC和AOP的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧
收藏 0 赞 0 分享

详解Spring AOP 拦截器的基本实现

本篇文章主要介绍了详解Spring AOP 拦截器的基本实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Mybatis 中的一对一,一对多,多对多的配置原则示例代码

这篇文章主要介绍了 Mybatis 中的一对一,一对多,多对多的配置原则示例代码,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多