基于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

}
 }

(0)

相关推荐

  • 使用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.Sy

  • java实现系统托盘示例

    桌面的系统托盘即当程序最小化或者关闭按钮程序并没有退出,而是最小化在任务状态区域(Windows系统),当鼠标点击那个区域所在的图标有提示以及其他的操作.在 Microsoft Windows 上,它被称为"任务栏状态区域 (Taskbar Status Area)",在 Gnome 上,它被称为"通知区域 (Notification Area)",在 KDE 上,它被成为"系统托盘 (System Tray)".系统托盘由运行在桌面上的所有应用

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

    项目结构: 运行效果: ======================================================================== 下面是代码部分: ======================================================================== /tray/src/com/b510/tray托盘/DesktopCapture.java 复制代码 代码如下: package com.b510.tray托盘; i

  • 基于Java开发实现ATM系统

    本文实例为大家分享了Java开发实现ATM系统的具体代码,供大家参考,具体内容如下 一.业务分析 通过使用Java面向对象的基础知识,开发一个ATM系统,实现存款,取款,转账,修改密码,注销账户等功能. 二.开发准备 首先,创建一个用户类,为建立用户对象做准备,用户类主要包括用户卡号(系统随机生成),用户名,账户密码,余额,取现额度.并搭建构造器,以及get,set. public class user {     private String cardId ;     //卡号     pri

  • 基于Java实现抽奖系统

    本次任务要求为某商场开发一套幸运抽奖系统,客户必须首先注册成为该商场会员,会员登录成功后,就可以参加抽奖活动了. 注册 用户选择"注册"菜单,进入注册界面.输入用户名和密码后,系统提示注册成功,并给出会员卡号. 登录 注册成功后,用户选择"登录"菜单,进入登录界面.输入注册时的用户名和密码.登录成功,系统提示欢迎信息.如果用户和密码输入错误,提示用户继续输入,最多有3次机会. 抽奖 登录成功后,用户选择"抽奖"菜单,进入幸运抽奖界面.输入会员卡号

  • 基于Java的电梯系统实现过程

    一.思路 写一个简单的电梯系统,首先根据老师提供的需求,写一下基础思路: 电梯有最高层和最低层,输入数字选择正确楼层数 输入数字大于当前楼层,则为上行:小于当前楼层,则为下行 每次输入数字的时候,需要对同为上行的数字或者同为下行的数字,进行排序 所输入的目标楼层用集合存放,循环最低层到最高层,如果当前层在集合中存在,显示开门,若还有目标楼层,则关门,继续到下一目标楼层. 当选择一个目标楼层,会生成随机重量记录在目标楼层,上行用原来重量加上目标楼层重量,下行则用原来重量减去目标楼层重量 二.实现

  • 基于Java实现Redis多级缓存方案

    目录 一.多级缓存 1. 传统缓存方案 2. 多级缓存方案 二.JVM本地缓存 1. 实用案例 三.缓存一致性 1. 常见方案 1.1 设置有效期 1.2 同步双写 1.3 异步通知 2. 基于Canal的异步通知 2.1 mysql主从复制 2.2 canal 工作原理 一.多级缓存 1. 传统缓存方案 请求到达tomcat后,先去redis中获取缓存,不命中则去mysql中获取 2. 多级缓存方案 tomcat的请求并发数,是远小于redis的,因此tomcat会成为瓶颈 利用请求处理每个环

  • 基于Java SSM框架开发图书借阅系统源代码

    一.技术框架与开发环境 开发环境: IDE:IDEA 2020 数据库:MySQL 8.0 JDK 1.8 Maven 3.6.1 Tomcat 9 lombok 1.18.1 技术框架: 核心框架:Spring 5.1.9 持久层框架:Mybatis 3.5.2 视图层框架:SpringMVC 5.1.9 前端框架:Bootstrap 4 jquery-3.6.0 二.项目源码 有用就点赞博客 Github 国内:Giee 项目结构 三.功能介绍 1.登录 2.注册 AJAX异步刷新显示判断账

  • 开发基于Java的图形用户界面

    SWT(Standard Widget Toolkit)是IBM推出的"基于java"的图形界面开发库,我之所以说它是"基于java"的意思是程序员编写代码的时候是使用java语言,事实上SWT的底层实现是C语言完成的.但是这些对程序员是透明的. 我们使用SWT开发GUI程序的时候,直接用SWT API来写.事实上很多java的代码是通过JNI去掉用C代码来实现的.针对不同的平台每个类有不同的实现方式,这篇文章的目的不在于讲述SWT的设计原理,如果你对这些感兴趣的话

  • Eclipse下基于Java的OpenCV开发环境配置教程

    最近研究OpenCV想用java进行开发,因此研究了一下怎么在Eclipse中配置基于java的Opencv. 第一步:先到OpenCV官网下载你想要的版本,假设使用的是2.4.6版本.在官网下载你想要的版本,解压到本地的某个目录.比如 D:/OpenCV/. 第二步,打开Eclipse,并找到Window –> Preferences. 第三步:进入Preferences菜单后,找到Java –> Build Path –> User Libraries ,然后点击New 第四步:点击

  • 基于Java SSM实现在线点餐系统

    目录 介绍 效果图 核心代码 介绍 项目编号:BS-PT-022 本项目基于SSM框架实现在线点餐系统,主要实现系统的在线点餐功能. 开发工具:IDEA/ECLIPSE 数据库:MYSQL5.7 后台技术:SSM 前台技术:CSS,JS,JSP 应用服务器:TOMCAT8.5 效果图 下面展示一下系统功能: 首页 我的餐车 订单 用户中心 会员登陆 会员注册 后台登陆 菜单管理 菜单类别管理 公告信息管理 订单管理 信息修改 核心代码 package com.example.meal_order

  • 基于Java SSM框架实现简易的评教系统

    目录 介绍 效果图 部分核心代码 介绍 项目编号:BS-GX-014 数据库:mysql 开发工具:IDEA / ECLIPSE 开发技术:SSM 框架 本系统基于SSM框架实现.主要包含三个角色,管理员,老师,学生.管理员主要管理学生,老师,课程.学生可以进行选课,选完课后可以对任课老师评价.老师可以查看自己的评价信息. 效果图 部分展示功能如下: 管理员角色: 学生角色: 老师角色: 部分核心代码 package one.controller; import java.util.List;

随机推荐