欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-10 18:13:22
java中如何,实现系统托盘功能. 示例图 项目包结构图   系统运行截图 应用核心逻辑说明,隐藏到托盘实质就是讲窗体隐藏.即setvisible...

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

示例图

项目包结构图

使用Java实现系统托盘功能的介绍(附源码以及截图)  使用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);

     }

 }