JavaSE 初学系统托盘图标SystemTray类
文章目录
设置Java程序的系统托盘图标,用到SystemTray类和TrayIcon类。
1.预备知识

JavaAPI对于SystemTray类描述:
SystemTray类代表桌面的系统托盘。 在Microsoft Windows上,它被称为“任务栏状态区”,在Gnome上将其称为“通知区域”,在KDE上称为“系统托盘”。 系统托盘由桌面上运行的所有应用程序共享。 在某些平台上,系统托盘可能不存在或可能不受支持,在这种情况下, getSystemTray()抛出UnsupportedOperationException 。 要检测系统托盘是否受支持,请使用isSupported() 。
SystemTray可能包含一个或多个TrayIcons ,它们使用add(java.awt.TrayIcon)方法添加到托盘中,并使用remove(java.awt.TrayIcon)删除不再需要的托盘 。 TrayIcon由图像,弹出菜单和一组关联的侦听器组成。
2.使系统托盘显示图标
public class TrayIconDemo2 {
public static void main(String args[]) throws Exception {
TrayIcon ti = new TrayIcon(new ImageIcon("xtb.jpg").getImage()) ;
SystemTray.getSystemTray().add(ti);
}
}
运行结果:

任务栏状态区多了这个图标,而设置的图像应为:

原因查看文档

代码改为
public class TrayIconDemo2 {
public static void main(String args[]) throws Exception {
TrayIcon ti = new TrayIcon(new ImageIcon("xtb.jpg").getImage()) ;
ti.setImageAutoSize(true);
SystemTray.getSystemTray().add(ti);
}
}
运行结果:

(没有设置事件响应,可在任务管理器关闭图标)
3.添加提示
public class TrayIconDemo2 {
public static void main(String args[]) throws Exception {
TrayIcon ti = new TrayIcon(new ImageIcon("xtb.jpg").getImage()) ;
ti.setImageAutoSize(true);
ti.setToolTip("这是提示");//设置提示
SystemTray.getSystemTray().add(ti);
}
}
运行结果:

(也可在构造方法中添加提示)
4.添加弹出菜单
public class TrayIconDemo2 {
public static void main(String args[]) throws Exception {
TrayIcon ti = new TrayIcon(new ImageIcon("xtb.jpg").getImage()) ;
ti.setImageAutoSize(true);
PopupMenu pm = new PopupMenu() ;
MenuItem mi2 = new MenuItem("打开");
MenuItem mi = new MenuItem("退出") ;
pm.add(mi);
pm.add(mi2);
ti.setPopupMenu(pm);
SystemTray.getSystemTray().add(ti);
}
}
运行结果:

JavaSE 初学系统托盘图标SystemTray类的更多相关文章
- C# 系统托盘图标
C# 系统托盘图标 WPF NotifyIcon 资料 网址: http://www.codeproject.com/Articles/36468/WPF-NotifyIcon http://www. ...
- runtime-给系统已有类添加属性
在没有接触runtime之前,我们接触到的能给类进行扩展的方法有类目(category)和延展(extension)两种.类目(category)可以给系统已有类添加扩展方法但是不能添加属性,并且被添 ...
- [BS-04] 在iOS中对系统定义的类的readonly属性可通过KVC进行赋值
系统提供的类的readonly属性可通过KVC进行赋值 UITabBarController.h @interface UITabBarController : UIViewController &l ...
- 探索Win32系统之窗口类(转载)
Window Classes in Win32 摘要 本文主要介绍win32系统里窗口类的运做和使用机制,探索一些细节问题,使win32窗口类的信息更加明朗化. 在本文中,"类", ...
- Inno Setup 系统托盘图标插件 TrayIconCtrl V1.5
原文 http://restools.hanzify.org/article.asp?id=93 V1.5 修正在某些 Windows 平台上(例如 Windows XP SP3)不能正常运行的问题. ...
- C#动态系统托盘图标
C#动态系统托盘图标 利用timer组件定时执行变化. using System; using System.Windows.Forms; namespace DynamicStockIcon { p ...
- Atitit 软件项目系统托盘图标解决方案
Atitit 软件项目系统托盘图标解决方案 1.1. Nodejs node-webkit还实现了本地化的API,例如菜单栏,系统的托盘图标支持1 1.2. Java c# qt c++1 1.3 ...
- Windows系统开发常用类-------------Environment类
Windows系统开发常用类-------------Environment类: SystemDirectory//显示系统目录 MachineName//计算机名称 ...
- Qt 添加程序图标和系统托盘图标
添加程序图标 第一种方法: 1.创建程序的时候,选择添加默认图标 2.替换程序目录下的ico文件,编译生成即可. 第二种方法: 比较适合一开始没有添加程序图标的情况 1.项目右键-->添加--& ...
随机推荐
- Echarts属性大全(及时更新最新信息)
echarts属性的设置(完整大全) // 全图默认背景 // backgroundColor: ‘rgba(0,0,0,0)’, // 默认色板 color: ['#ff7f50','#87c ...
- 逻辑读为何消耗CPU?
在数据库系统中,经常会看到这个说法:“逻辑读很消耗CPU”,然后开始把这句话当作一个定理来使用.但是为什么“同样是读,为什么逻辑读会使用那么多CPU?” 查了一些资料,配合自己的理解,有下面几点体会: ...
- (转)Microsoft Print to PDF
好像win10.win7 都有
- 2017.2.6Redis连接问题排查
现象:早8:15起开始收到redis主从不停切换的报警短信,某系统连接流控redis报超时. 排查:1.查看zabbix,看流控系统的redis服务器是否正常——正常: 2.查看redis监控,red ...
- CSS 背景图像 填充整个页面示例
background-image 属性可以设置背景图像. 背景图像可以填充整个页面的,也可以填写一部分. background-image 属性的使用很简单:background-image:url( ...
- .Net23种设计模式
C#常见的设计模式 一.概要: 模式分为三种,设计模式.体系结构模式与惯用法.其中惯用法是一种语言紧密相关的模式,例如,定界加锁模式其实是一种惯用法. 在C#项目开发过程中,很多情况下您已经使用了某些 ...
- spring @Autowired与@Resource的区别
1.@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上. 2.@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必 ...
- vue 自定义组件销毁
今天在开发电商vue前端项目时,用户每次登出再换其它用户登录时,页面显示的用户名和左则导航都还是上个用户的,刚开始以为是localStorage中没有清除全局数据,然后在用户点击退出系统时手动清除lo ...
- [转]真正的中国天气api接口xml,json
转自:http://blog.csdn.net/fancylovejava/article/details/26102635 我只想说现在网上那几个api完全坑爹有木有??? 官方的申请不来有木有,还 ...
- ALV编辑数据后未更新到内表
在调用 ‘I_CALLBACK_USER_COMMAND’的时候定义 DATA: GR_ALV TYPE REF TO CL_GUI_ALV_GRID. "alv数据更改后更新到内表 CAL ...