设置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. Oracle所有分析函数<转>

    Oracle分析函数——函数列表 SUM        :该函数计算组中表达式的累积和 MIN        :在一个组中的数据窗口中查找表达式的最小值 MAX        :在一个组中的数据窗口中 ...

  2. mysql创建用户并分配权限

    添加新用户 允许本地 IP 访问 localhost, 127.0.0.1 create user 'test'@'localhost' identified by '123456'; 允许外网 IP ...

  3. 单片机课程设计——课程设计之四位加法计算器(2)(C代码)

    #include<reg52.h> typedef unsigned char uint8; typedef unsigned int uint16; sbit rw=P2^5; sbit ...

  4. Python第4天

    主要内容: 数字(int) 字符串(replace/find/join/strip/startswith/split/upper/lower/format) 列表 append/extend/inse ...

  5. 慕课网c#开发轻松入门6-8最终项目

    下面是一些同学的姓名和对应的考试分数,请输出他们的平均分和高于平均分的同学姓名. 运行效果如下: using System; using System.Collections.Generic; usi ...

  6. 啊哈算法第四章第二节解救小哈Java实现

    package corejava; public class FourTwo { static int m;//(m,n)为几行几列 static int n; static int p;//(p,q ...

  7. 在虚拟机上运行zookeeper的过程中,xshell连接不上虚拟机

    之后网上的各种方法,都没用 如图,就是第一个网卡配置文件.下面又具体的详解.网上有说让把Onboot改成yes,而我的本来就是yes,就没该, 之后我对比了我原来电脑你虚拟机的网卡配置文件,我发现on ...

  8. oracle 查看处理锁表

    --查出sid,serial#select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where ...

  9. Day06 - Ruby三种存取限制:Public,Protected,Private

    前情提要: 在第五天的最后,我们提到了一句话“相同的class的实体也无法使用别人的singleton method”. 在今天,我们把焦点放在Ruby的method,继续了解存取限制:) Ruby经 ...

  10. R语言-饼图

    1.饼图 > browsers<-read.table("browsers.txt",header=TRUE) > browsers<-browsers[o ...