java 提醒小工具_java – 如何捕获trayicon.displayMessage()鼠标点击工具提示音

2023-11-10

1)可以通过将ActionListener添加到TrayIcon来监听MouseClickEvents,然后通过消息身体监听MouseClicked

2)(不直接询问),但是如果消息被关闭按钮关闭,我不能给你一个答案,而消息从屏幕上相同的方式离开,但没有捕获任何事件

import java.awt.*;

import java.awt.event.*;

public class FullTray {

private static class ShowMessageListener implements ActionListener {

private TrayIcon trayIcon;

private String title;

private String message;

private TrayIcon.MessageType messageType;

ShowMessageListener(TrayIcon trayIcon,String title,String message,TrayIcon.MessageType messageType) {

this.trayIcon = trayIcon;

this.title = title;

this.message = message;

this.messageType = messageType;

}

public void actionPerformed(ActionEvent e) {

trayIcon.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

System.out.println("Message Clicked");

}

});

trayIcon.displayMessage(title,message,messageType);

}

}

public static void main(String args[]) {

Runnable runner = new Runnable() {

public void run() {

if (SystemTray.isSupported()) {

final SystemTray tray = SystemTray.getSystemTray();

Image image = Toolkit.getDefaultToolkit().getImage("gifIcon.gif");

PopupMenu popup = new PopupMenu();

final TrayIcon trayIcon = new TrayIcon(image,"The Tip Text",popup);

MenuItem item = new MenuItem("Error");

item.addActionListener(new ShowMessageListener(trayIcon,"Error Title","Error",TrayIcon.MessageType.ERROR));

popup.add(item);

item = new MenuItem("Warning");

item.addActionListener(new ShowMessageListener(trayIcon,"Warning Title","Warning",TrayIcon.MessageType.WARNING));

popup.add(item);

item = new MenuItem("Info");

item.addActionListener(new ShowMessageListener(trayIcon,"Info Title","Info",TrayIcon.MessageType.INFO));

popup.add(item);

item = new MenuItem("None");

item.addActionListener(new ShowMessageListener(trayIcon,"None Title","None",TrayIcon.MessageType.NONE));

popup.add(item);

item = new MenuItem("Close");

item.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

tray.remove(trayIcon);

}

});

popup.add(item);

try {

tray.add(trayIcon);

} catch (AWTException e) {

System.err.println("Can't add to tray");

}

} else {

System.err.println("Tray unavailable");

}

}

};

EventQueue.invokeLater(runner);

}

private FullTray() {

}

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java 提醒小工具_java – 如何捕获trayicon.displayMessage()鼠标点击工具提示音 的相关文章

  • 电脑怎么开启vt_如何查看自己的电脑是否支持虚拟化技术

    查看自己的电脑是否支持虚拟化技术或是否开启虚拟化技术 对我们安装使用虚拟机有非常大的用处 查看方法一般有两种 一种是进入BIOS查看 另一种比较简单 就是直接使用工具查看 那接下来 我们就去学习 使用工具如何查看是否支持虚拟化技术 v005
  • C51串口的SCON寄存器及工作方式

    串行口控制寄存器SCON 它用于定义串行口的工作方式及实施接收和发送控制 字节地址为98H 其各位定义如下表 其中fosc为晶振频率 SM2 多机通讯控制位 在方式0时 SM2一定要等于0 在方式1中 当 SM2 1则只有接收到有效停止位时
  • A - PG CodeForces - 520A

    A PG CodeForces 520A 如果一个字符串包含了所有的字符 a到z 不区分大小写 那么我们就说这是一个神奇的字符串 现在 给你一个由大写和小写字母组成的字符串 判断其是否为神奇的字符串 Input 第一行包含一个整数n 1 n
  • 开源社区大模型目前面临的8大瓶颈问题

    开源社区模型百花齐放 比如Meta的LLaMA系列 Hugging Face的Bloom系列 Stability AI的Stable Diffusion系列等等 为技术学习提供了学习平台 快速提升人才储备 开源产品降低创新垄断 增强整个行业
  • (KVM)使用xml文件创建虚拟机

    编写xml文件并创建格式为qcow2磁盘镜像文件 编写一个centos7 xml xml文件存放在 etc libvirt qemu 目录下 这是虚拟机的启动文件 内容如下
  • 【NLP工具】hanLP2.1的使用(未完)

    目录 一 hanlp简介 二 安装hanlp 三 测试使用 四 hanlp的预训练模型 五 词性标注 六 命名实体识别 一 hanlp简介 面向生产环境的多语种自然语言处理工具包 基于PyTorch和TensorFlow 2 x双引擎 目标
  • Python NumPy 数组索引

    前言 NumPy Numerical Python的缩写 是一个开源的Python科学计算库 使用NumPy 就可以很自然地使用数组和矩阵 NumPy包含很多实用的数学函数 涵盖线性代数运算 傅里叶变换和随机数生成等功能 本文主要介绍Pyt
  • 微信小程序-- 三、视图与逻辑

    文章目录 三 视图与逻辑 1 声明式导航 1 跳转到 tabBar 页面 2 跳转到非 tabBar 页面 3 后退导航 2 编程式导航 1 跳转到 tabBar 页面 2 跳转到 非tabBar 页面 2 后退导航 3 导航传参 1 声明
  • python123习题集

    python123习题集 06函数 07集合 08列表元组 09集合 10字典 12随机数 06函数 二分法求平方根 tips 二分法求解思路 精度控制 import math n delta map eval input split de
  • 坑爹的jack-server

    平台 rk3288 安卓版本 android7 1 记录一次jack server编译踩坑之路 期间本人改端口 重装java 8 openjdk amd64 反正各种尝试搞了一周 人都给整郁闷了 网上各种方法都尝试遍了甚至重装了系统 1 重
  • 中科院三院士谈AI:人工智能的“脑洞”有多大?

    李德毅 中国工程院院士 中国人工智能学会理事长 我们今天的科学家 尤其是计算机科学家 把 计算 用得太狠了 对 计算 的依赖甚至有些 贪得无厌 了 人工智能学者不能只盯着计算认知 一味要求 人脑研究的步伐有多快 而要拿出更多的精力放在 记忆
  • QT修改ui界面后显示的还是原来的界面

    这个问题可能是由于你从其他地方复制来了源码或者是ui界面 导致 ui xxx h 头文件不能及时更新导致的 只需要将工程的编译目录 工程的编译目录不一定是你的文件所在的目录 下的ui xxx h文件全部删除 在重新编译即可 如果不行的话就将
  • 面向对象——this关键字

    this关键字简介 当创建一个对象成功后 在构造方法调用前 对象已经创建成功 虚拟机 JVM 会动态的分配一个引用 该引用指向的就是当前对象 这个引用的名字叫做this 在成员方法中 谁调用这个方法 那么this就指向那个对象 在构造方法中
  • (Java毕业设计)房产销售管理系统(java+mysql)

    大家好 我是职场程序猿 感谢您阅读本文 欢迎一键三连哦 当前专栏 Java毕业设计 目录 一 项目简介 二 系统项目部分截图 2 1注册登陆功能 2 2公告信息功能 2 3房屋信息展示 2 4系统管理员功能 三 论文目录 四 部分核心代码
  • nodejs中require的路径是一个文件夹时发生了什么

    node中使用require的时候如果路径是一个文件夹时 或者特殊的情况require require 这是node实战这本书里说的情况 但是我在node6 9版本中发现不完全是这样 可能是后来做了修改 下面说说在6 9下require路径
  • 基础算法:浮点二分——数的三次方根

    浮点数二分 求一个数的三次方根 include
  • 蓝桥杯打卡Day1

    文章目录 全排列 八皇后 一 全排列IO链接 本题思路 本题是一道经典的全排列问题 深度优先搜索即可解决 include
  • helm简介、安装、配置、使用指南

    转载自 https blog csdn net bbwangj article details 81087911 目录 helm简介 Helm 组件及相关术语 Helm Tiller Chart Repoistory Release Hel
  • H2支持mysql:MODE=MySQL

    连接字符串参数 DB CLOSE DELAY 要求最后一个正在连接的连接断开后 不要关闭数据库 MODE MySQL 兼容模式 H2兼容多种数据库 该值可以为 DB2 Derby HSQLDB MSSQLServer MySQL Oracl

随机推荐

  • 在 MySQL 中,如果要存储大文本数据,改如何选择

    在 MySQL 中 如果要存储大文本数据 可以选择以下两种数据类型 TEXT 适用于存储较长的文本数据 最大长度为65 535个字符 LONGTEXT 适用于存储非常大的文本数据 最大长度为4 294 967 295个字符 选择使用哪种类型
  • 【SQL】sql语句LEFT JOIN(拼接表)详解

    1 语法 SELECT column name s FROM table1 LEFT JOIN table2 ON table1 column name table2 column name 2 说明 按照一定规则 将表table1和表ta
  • Python——将字符串写入文本保存

    sResult为要写入的内容 一般是字符串形式 with open C Python37 911 txt w encoding utf 8 as f f write str sResult f close
  • stm32 利用定时器中断消除按键抖动

    button c int iButtonCount i代表int型变量 ButtonCount表示按键计数变量 int iButtonFlag i代表int型变量 ButtonFlag表示重按键标志 1代表重新按键 0为没有重新按键 int
  • Android studio的cMake编译生成.so库并调用

    第一步 添加工具 在SDK Tools中勾选安装CMake LLDB NDK 其中的LLDB是调试本地代码的工具 可以调试C 代码 第二步 创建一个最简单的官方demo File gt New gt NewProject 选中最下方的Inc
  • 前端实战系列:如何开发微信小程序

    课程简介 小程序开发相对于App开发 开发快捷推广成本低 依托微信平台非常好推广 市面上很多企业现在都想开发自己的小程序 本次课程带大家开发一个小程序 从账号注册到编写全流程讲解 实现一个 本地生活案例 课程推荐 前端实战 如何开发微信小程
  • React 高频面试题-大厂必问

    React 对于react的理解 一 是什么 React 用于构建用户界面的JavaScript库 只提供UI层面的解决方案 遵循组件设计模式 声明式编程范式和函数式编程概念 以使前端应用程序更高效 使虚拟 DOM 来有效的操作 DOM 遵
  • C#(64位系统) 解决"未能加载文件或程序集,或它的某一个依赖项..."

    这个问题通常出在引用第三方DLL或者自己以前写的DLL 在64位系统下则可能会出现这种问题 今天下载MySQLDriverCS后引用遍出现了这个问题 参考了一些文档 下面给出解决方法 将项目的生成目标平台改为x86 默认Any cpu 就可
  • $stateProvider

    stateProvider工作的方式与Angular s v1 router相近 但是他更加注重状态 状态对应于应用程序中某个位置 整体的UI和导航A state corresponds to a place in the applicat
  • 基于matlab实现的人脸检测

    作为一个图像处理的初学者 一直想写一个人脸检测的程序 经过多次尝试 发现不管是在C站上找的开源代码 还是自己手撸的代码 总是那么不尽人意 后来经过查阅资料 发现matlab内置有一个人脸检测的检测器函数 精度非常高 如果对人脸检测不求甚解
  • 【毕业设计】stm32机器视觉的人脸识别系统 - 单片机 物联网 嵌入式

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 设计原理 K210实现人脸识别 5 部分核心代码 6 最后 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到毕业答辩的要求 这
  • camera 驱动 mipi计算

    static struct sensor lib out info t sensor out info RES 0 x output 3264 y output 2448 line length pclk 1932 frame length
  • java之简单上手HelloWorld程序(命令行窗口操作)

    文章目录 java之简单上手HelloWorld程序 命令行窗口操作 一 下载安装JDK文件 二 查询是否安装成功 一 创建文件 二 代码部分 三 打开命令行窗口运行程序 java之简单上手HelloWorld程序 命令行窗口操作 一 下载
  • sdc时钟约束2——多驱动时钟

    多驱动时钟 前言 在设计中 难免会遇到多个时钟通过mux选择后作为模块时钟使用的情况 在设置sdc时需要定义 为避免在使用pt分析时序时没有分析全 而出现时序违列 需要在创建时钟时注明 提示 以下是本篇文章正文内容 下面案例可供参考 如图所
  • 简单的递归下降语法分析程序

    简单递归分析程序 其代码如下 include
  • 计算机无法启用媒体流,电脑流媒体打不开怎么回事?电脑打开媒体流的方法

    流媒体是边传边播的媒体 它采用流式传输的方式在Internet播放媒体 电脑开启媒体流服务后 我们可以方便的传送多媒体文件 有的网友反馈说电脑流媒体打不开 这是怎么回事 可能是第三方优化软件无意禁用相关服务导致的 下面就来分享电脑流媒体打不
  • 代驾小程序源码全套,支持二开(Thinkphp+bootstrap+小程序uniapp)

    代驾小程序源码全套 支持二开 Thinkphp bootstrap 小程序uniapp 支持二开 包含基本的代驾功能 内部基于腾讯地图开发 1 基于ThinkPHP Bootstrap的极速后台代驾系统 2 基于uniapp开发的代驾小程序
  • Java异常(超详细!)

    1 什么是异常 java提供异常处理机制有什么用 什么是异常 程序执行过程中的不正常情况 异常的作用 增强程序的 健壮性 eg public class ExceptionTest01 public static void main Str
  • 二、eladmin学习笔记之common层相关注解下

    文章目录 eladmin使用的相关注解 1 Aspect 2 EnableCaching 3 ConditionalOnClass 4 EnableConfigurationProperties 5 SuppressWarnings 6 C
  • java 提醒小工具_java – 如何捕获trayicon.displayMessage()鼠标点击工具提示音

    1 可以通过将ActionListener添加到TrayIcon来监听MouseClickEvents 然后通过消息身体监听MouseClicked 2 不直接询问 但是如果消息被关闭按钮关闭 我不能给你一个答案 而消息从屏幕上相同的方式离