设置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类的更多相关文章

  1. C# 系统托盘图标

    C# 系统托盘图标 WPF NotifyIcon 资料 网址: http://www.codeproject.com/Articles/36468/WPF-NotifyIcon http://www. ...

  2. runtime-给系统已有类添加属性

    在没有接触runtime之前,我们接触到的能给类进行扩展的方法有类目(category)和延展(extension)两种.类目(category)可以给系统已有类添加扩展方法但是不能添加属性,并且被添 ...

  3. [BS-04] 在iOS中对系统定义的类的readonly属性可通过KVC进行赋值

    系统提供的类的readonly属性可通过KVC进行赋值 UITabBarController.h @interface UITabBarController : UIViewController &l ...

  4. 探索Win32系统之窗口类(转载)

    Window Classes in Win32 摘要 本文主要介绍win32系统里窗口类的运做和使用机制,探索一些细节问题,使win32窗口类的信息更加明朗化. 在本文中,"类", ...

  5. Inno Setup 系统托盘图标插件 TrayIconCtrl V1.5

    原文 http://restools.hanzify.org/article.asp?id=93 V1.5 修正在某些 Windows 平台上(例如 Windows XP SP3)不能正常运行的问题. ...

  6. C#动态系统托盘图标

    C#动态系统托盘图标 利用timer组件定时执行变化. using System; using System.Windows.Forms; namespace DynamicStockIcon { p ...

  7. Atitit 软件项目系统托盘图标解决方案

    Atitit 软件项目系统托盘图标解决方案 1.1. Nodejs   node-webkit还实现了本地化的API,例如菜单栏,系统的托盘图标支持1 1.2. Java c# qt c++1 1.3 ...

  8. Windows系统开发常用类-------------Environment类

    Windows系统开发常用类-------------Environment类:         SystemDirectory//显示系统目录         MachineName//计算机名称 ...

  9. Qt 添加程序图标和系统托盘图标

    添加程序图标 第一种方法: 1.创建程序的时候,选择添加默认图标 2.替换程序目录下的ico文件,编译生成即可. 第二种方法: 比较适合一开始没有添加程序图标的情况 1.项目右键-->添加--& ...

随机推荐

  1. go-001[常用命令]

    go env GOARCH="amd64"//这台机器的cpu 架构 GOBIN="/Applications/MAMP/htdocs/go/bin"  //工 ...

  2. sql语句的优先级

    SQL 不同于与其他编程语言的最明显特征是处理代码的顺序.在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后 ...

  3. mybatis学习 -每天一记 mybatis insert null 报错

    mybatis 插入数据,model的属性存在null,插入报错 在使用mybatis 进行insert时,如果字段值存在null的情况,会出现插入失败的情况,解决方案: 如果使用spring boo ...

  4. WINAPI方式在windows不同缩放比下取得正确的分辨率

    作者: 国家电网河南原阳县供电公司 俏狐:86074731 这个问题我在国内外的很多论坛查资料都没有找到,只有自己研究了,希望可以帮到需要的朋友.本文为原创,转 载请注明出处. #coding:utf ...

  5. Git常用命令(一)

    转自2.1 Git 基础 - 获取 Git 仓库 获取帮助 `$ git help <verb> $ git <verb> --help $ man git-<verb& ...

  6. 201772020113 李清华《面向对象程序设计(java)》第十五周学习总结

    1.实验目的与要求 (1) 掌握Java应用程序的打包操作: (2) 了解应用程序存储配置信息的两种方法: (3) 掌握基于JNLP协议的java Web Start应用程序的发布方法: (5) 掌握 ...

  7. Monkey测试简介

    1.Monkey测试简介monkey是安卓命令行工具,它向系统发送伪随机的用户事件,例如:按键的输入.触摸屏的输入.手势输入等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常.因此,mo ...

  8. 深度学习原理与框架- tf.nn.atrous_conv2d(空洞卷积) 问题:空洞卷积增加了卷积核的维度,为什么不直接使用7*7呢

    空洞卷积, 从图中可以看出,对于一个3*3的卷积,可以通过使用增加卷积的空洞的个数,来获得较大的感受眼, 从第一幅图中可以看出3*3的卷积,可以通过补零的方式,变成7*7的感受眼,这里补零的个数为1, ...

  9. 云栖大会day2总结 上午

    第二天上午主要是参与了开发者专场 上 09:00-09:40 线上线下融合时代的工程师成长 李佩 饿了么高级算法总监 09:40-10:20 如何统一阿里巴巴代码规范:探寻工程师文化之路 玄坛 阿里巴 ...

  10. UE4 C++ 笔记

    1.获取当前的GameMode:GameMode = Cast<你GameMode的类名>( UGameplayStatics::GetGameMode(this)); 2.输出日志Deb ...