JAVA实现系统托盘

Java实现系统托盘图标操作的完整指南 系统托盘是操作系统提供的一种服务,它允许应用程序在后台运行,同时通过在任务栏的通知区域展示图标,以实现与用户的交互。在桌面操作系统中,用户习惯于通过托盘图标访问应用程序的功能,例如音量控制、网络状态显示和快速访问系统设置等。尽管它不是应用程序的核心功能,但系统托盘的优化和有效利用可以极大地提升用户体验。系统托盘具有以下关键特征:隐蔽性:应用程序可以隐藏其主窗口,同时托盘图标仍保持可见。交互性:用户可以通过鼠标操作(例如单击、双击或右键点击)与托盘图标交互,触发事件或打开菜单。 阅读详情

http://chowqingbao.iteye.com/blog/1064149


让界面更加绚丽 Java SE 6.0 GUI体验

  系统托盘

  现在有很多程序除了提供了一个完整的主界面外,在它最小化或者启动后在右下角的系统托盘区总是有一个小图标,如金山词霸、QQ和MSN等。图5显示了一台计算机的系统托盘里的图标。

  如果使用C++、Delphi(Pascal)等语言实现这个功能非常简单,只要调用一下系统API即可,但在以前版本(Java SE 5以前)的Java SE中Sun并未提供访问系统托盘的类,在那时使用Java访问系统托盘的唯一方法就是使用JNI直接调用系统API,但这种方法实现比较复杂,而且如果这样做,就破坏了Java的跨平台特性(除非你为每一个操作系统平台都做一个这样的类)。Java的这个缺陷缓和终于在Java SE 6中得到弥补。在java.awt包中提供了一个SystemTray类可以直接访问系统托盘。下面的代码演示了一个简单的实现。
import javax.swing.*;
import java.awt.*;

public class MyTray
{
 public static void main(String args[])
 {
  // 判断当前操作系统是否支持系统托盘
  // 最好加上这个判断,否则这个程序可能在其它操作系统上无法正常工作
  if (SystemTray.isSupported()) 
  {
   // 通过静态方法getSystemTray()得到系统托盘
   SystemTray tray = SystemTray.getSystemTray();
   // 装载托盘图象 
   Image image = Toolkit.getDefaultToolkit().getImage("tray.gif");
   // 为这个托盘加一个弹出菜单
   PopupMenu popup = new PopupMenu();
   MenuItem item = new MenuItem("我的菜单");
   popup.add(item);
   // 为这个托盘加一个提示信息
   TrayIcon trayIcon = new TrayIcon(image, "提示信息", popup);
   try
   {
    tray.add(trayIcon);
   }
   catch (AWTException e)
   {
    System.err.println("无法向这个托盘添加新项: " + e);
   }
  }
  else
  {
   System.err.println("无法使用系统托盘!");
  }
 }
}

  在运行上面的程序之前,tray.gif一定要放到当前目录,如果放到其它的目录,要在程序中指明。图6是程序运行结果。最左侧的五彩光盘图标就是本程序加入了。

  如果多次调用tray.add(trayIcon),可以在一个程序中向系统托盘添加多个图标。但要注意,图象可以使用一个Image对象,但弹出菜单要为每一个图标建一个,如果不建,就设为null。如:
TrayIcon trayIcon1 = new TrayIcon(image, "提示信息1", null);
TrayIcon trayIcon2 = new TrayIcon(image, "提示信息2", null);
TrayIcon trayIcon3 = new TrayIcon(image, "提示信息3", null);
tray.add(trayIcon1);
tray.add(trayIcon2);
tray.add(trayIcon3);



  Java SE 6还为我们提供了3种提示信息,它们是警告、错误和信息。如使用如下语句添加提示信息。

  添加警告提示:
trayIcon.displayMessage("警告", "这是一个警告提示!", TrayIcon.MessageType.WARNING);


  添加错误提示:
trayIcon.displayMessage("错误", "这是一个错误提示!", TrayIcon.MessageType.ERROR);


  添加信息提示:
trayIcon.displayMessage("信息", "这是一个信息提示!", TrayIcon.MessageType.INFO);


从零到一:YOLOv11高帧率模型在RDK X5上的ONNX转换与部署实战 本文详细介绍了将最新的YOLOv11高帧率模型部署到地平线RDK X5开发板的完整实战流程。内容涵盖从PyTorch模型导出ONNX、地平线工具链环境配置与模型量化编译,到编写高效的板端推理代码,并针对高帧率目标进行了后处理优化。通过实战避坑指南,帮助开发者在RDK X5上实现30FPS以上的实时目标检测。 阅读详情

相关推荐

ADS 使用教程(一)Workspace, Library and Cell

简要介绍ADS的基本内容

Dirge19的博客 6614

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

1)可以通过将ActionListener添加到TrayIcon来监听MouseClickEvents,然后通过消息身体监听MouseClicked2)(不直接询问),但是如果消息被关闭按钮关闭,我不能给你一个答案,而消息从屏幕上相同的方式离开,但没有捕获任何事件import java.awt.*;import java.awt.event.*;public class FullTray {pri...

weixin_33301547的博客 442

从零部署奥比中光Gemini335L:Python SDK编译与手眼标定环境实战

本文提供了一份从零部署奥比中光Gemini 335L深度相机的完整实战指南。详细介绍了驱动安装、Python SDK编译、CMake配置及虚拟环境搭建等关键步骤,并重点解析了如何通过编译生成Python模块,最终实现深度图与点云数据获取,为后续的机械臂手眼标定工作奠定坚实基础。

weixin_29031161的博客 399

java 展开任务托盘_java – 任务托盘通知气球事件?

是否可以在任务托盘图标通知气球上调用任何java事件,那是trayIcon.displayMessage(title, message, TrayIcon.MessageType.INFO)像Dropbox一样,当我点击气球时,它会将我带到它下载最近文件的文件夹.是否可以使用java?解决方法:通过做一些R& D,当我们点击通知气球时,我得到了托盘图标双击事件.这就是我想要的.检查此代码:...

weixin_33957458的博客 223

【MATLAB代码】TDOA+TOA融合算法,高精度定位。通过多边定位解算4个锚点、平面目标的位置,附代码

二维平面下的TOA、TDOA及混合定位算法,通过4个锚节点对目标点进行定位。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 211

常用元器件使用方法36:USB转串口芯片CH340X

本文介绍了CH340X芯片的使用方法

snmplink的博客 2837

java Swing 实现将系统最小化到系统托盘

源码:/*  * MainFrame.java  *  * Created on 2008年9月20日, 上午11:44  */    package com.topking.tray.ui;    import java.awt.AWTException;  import

szl的专栏 4765

YOLOv11改进 - C3k2融合 | C3k2融合细节增强卷积DEConv(Detail-Enhanced Convolution)提升细微特征提取能力

本文介绍了细节增强卷积(DEConv)技术在YOLOv11中的结合应用。DEConv由标准卷积层和多种差异卷积层并行组成,通过计算像素差异和卷积操作增强特征提取能力,还采用重参数化技术简化模型结构。其优势在于能更好捕捉高频信息、保持参数数量不变且降低推理计算成本。我们将DEConv集成进YOLOv11,替换部分模块。

魔改工程师的博客 862

系统托盘功能

原文的出处:http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/systemtray/我并没有全文照译.其中介绍什么是托盘的部分略去了在译后,加了一个自己写的例子. 访问系统托盘类java.awt.SystemTray代表了桌面的系统托盘.你可以通过静态方法SystemTray.getSystemTray()

cleverd 2641

uniapp - 解决在线预览PDF文件空白打不开的问题,无论是后端下载二进制文件流pdf还是本地插件或JS预览查看打开白屏不显示,详细排查解决(适用于移动端H5网页、安卓/苹果app、微信小程序)

uniapp App端 实现pdf文件预览打开白屏解决,uniapp 在线预览pdf打开一片空白,跨域白屏,uni-app中使用WebView预览PDF文件打开空白,微信小程序(uniapp)预览PDF空白怎么办,下载PDF文件流后打开空白或无法打开的问题,Uniapp H5网页下载二进制pdf文件页面空白以及解决文件损坏打不开的情况,Uniapp app在线预览pdf文件流,PDF加载出来怎么办,服务器后端返回PDF文件流后前端进行下载但打开后一片白屏,解决pdf文件流,预览全是空白页,pdf文件流,下载

🏆 前端领域优质创作者 1万+

手把手教你学Simulink——基于Simulink的PMSM MTPA + FW 全速域平滑切换策略

本文提出一种基于Simulink的PMSM全速域平滑切换控制策略,通过融合MTPA和弱磁控制(FW)实现基速附近的无冲击过渡。在过渡区采用加权融合电流给定方法,使电流超调<5%、转速波动<2%,全速域效率>90%。文章详细介绍了系统架构、核心算法及Simulink建模步骤,包括融合控制器设计、切换逻辑实现和参数优化。仿真结果表明,该方法相比传统硬切换显著改善了动态性能,并扩展了调速范围。同时提供了可直接复用的工程模板和MATLAB代码,为电机控制工程师提供了实用的全速域控制解决方案。

MHD0815的博客 80

java系统托盘_Java实现把窗体隐藏到系统托盘

package pretoct;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.ev...

weixin_36249804的博客 190

WPF+MVVM案例实战(二十三)- 阴影效果详解

通过附加属性实现阴影效果,通过改变不同的阴影属性值达到不同阴影效果

lingshuangcanxue 561

java中系统托盘的实现

很明显,JAVA中的系统托盘,如果要实现,重要的是两个类,一个是SystemTray,而另一个是TrayIcon。需要为TrayIcon设置好图片,它需要显示的信息以及右键点击的PopupMenu.PopupMenu的使用很简单,就是将需要的MenuItem添加入PopupMenu中。以下是一段示例代码,用于表明系统托盘如何实现。import java.awt.*; import java.awt.TrayIcon.MessageType; import java.awt.event.*; imp

卧龙居 5367

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

java实现系统托盘图标

 在VC和.NET中实现系统托盘图标都很容易,可以直接使用系统api实现,在java中要实现系统托盘就不是一件容易的事了,之前曾经在网上看到有人也调用windows的api函数实现了系统托盘,真是强人,其实在jdk1.6中新增了一个用于实现系统托盘的类java.awt.SystemTray,这样java也可以方便的使用系统托盘了,下面是一个例子:public void systemTray

roden的专栏 3347

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

java程序如何实现右下角系统托盘图标显示

刚刚学习java,看到程序右下角图标的显示感觉很新鲜,于是上网查找一些资料。自己写了一个简单的程序实现了一下。 import java.awt.AWTException; import java.awt.Image; import java.awt.MenuItem; i

流年逝水 4104

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Java applet 实现系统托盘及简单功能

【代码】Java applet 实现系统托盘及简单功能。

ZLUOYU的博客 400

java实现系统托盘

转至:http://www.blogjava.net/kissjava/archive/2008/07/30/218654.html 谢谢 明天就要离开我的第一家公司,打算先去厦门玩几天再回深圳踏去寻找新东家的漫长道路。呵,开始说正事,今天看API无意中发现了一个jdk1.6新增的SystemTray类,才想起:是哦,java怎么实现系统托盘呢? 桌面的系统托盘即当程序最小化...

ginue999的专栏 319

java swing 实现系统托盘

[b] 本文转载,原作者看到请谅解! [/b] [code="java"] # 源码: # /* # * MainFrame.java # * # */ # # package com.topking.tray.ui; # # import java.awt.AWTException; # import java.awt....

javaeys技术博客 336

java实现最小化到系统托盘图标的代码

java实现最小化到系统托盘图标的代码 源代码下载地址:http://www.zuidaima.com/share/1765511544228864.htm

springmvc_freemarker的博客 2059

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

项目代码如下: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;impor...

weixin_29696567的博客 204

Java1.6.0实现系统托盘技术

实现系统托盘图标,借用dll动态链接库,用JAVA JNI实现。      JDK6.0的系统托盘的雏形是个开源的JDIC,实现原理就是不同的系统调用不同的JNI不是像LZ那样想的,可以在任何平台上跑,所以也是分支持不支持的,LZ可以用JDK1.6或JDI。import java.awt.AWTException; import java.awt.MenuItem; imp

信笔涂鸦 861

java swing 最小化到托盘_Java实现把窗体隐藏到系统托盘方法

系统托盘也就是桌面右下角的图标。。此程序实现的功能是点击窗体关闭按钮不退出程序,而是隐藏到系统托盘里面。实质上也只是把窗体不可见了。。。import java.awt.AWTException;import java.awt.MenuItem;import java.awt.PopupMenu;import java.awt.SystemTray;import java.awt.TrayIcon;...

weixin_34461414的博客 699

java程序去除系统窗体_Java实现把窗体隐藏到系统托盘方法

系统托盘也就是桌面右下角的图标。。此程序实现的功能是点击窗体关闭按钮不退出程序,而是隐藏到系统托盘里面。实质上也只是把窗体不可见了。。。import java.awt.awtexception;import java.awt.menuitem;import java.awt.popupmenu;import java.awt.systemtray;import java.awt.trayicon;...

weixin_34138585的博客 238
上一篇: JSP中EL表达式语言不能使用的解决方法
下一篇: Eclipse 3.6 中安装WindowBuilder Pro及使用SWT Designer
caixiexin
博客等级 码龄17年 122粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值