java应用程序-系统托盘

本实例是用来制作应用程序的系统托盘,比如类似qq在窗体的右下角的图标格式。代码直接复制可用。

 1 import java.awt.AWTException;
 2 import java.awt.Image;
 3 import java.awt.MenuItem;
 4 import java.awt.PopupMenu;
 5 import java.awt.SystemTray;
 6 import java.awt.TrayIcon;
 7 import java.awt.event.ActionEvent;
 8 import java.awt.event.ActionListener;
 9 import java.net.URL;
10
11 import javax.swing.*;
12
13 public class SystemTrayDemo extends JFrame{
14
15     /**
16      * 为程序添加系统托盘
17      */
18     private ImageIcon imageIcon;
19     private TrayIcon trayIcon;
20     private PopupMenu popMenu;
21     private MenuItem exit,show;
22     private SystemTray systemTray;
23     //构造方法
24     public SystemTrayDemo() {
25         if (SystemTray.isSupported()) {   //判断是否支持系统托盘
26         //以system.png为图片创建图标,图片system.png在你的工程目录下(eclipse中,其它IDE没有测试)
27             imageIcon = new ImageIcon("images/q.png");
28             trayIcon = new TrayIcon(imageIcon.getImage());  //创建托盘图标
29             trayIcon.setToolTip("系统托盘");
30             popMenu = new PopupMenu();      //创建弹出菜单
31             //创建菜单项
32             exit = new MenuItem("退出");
33             show = new MenuItem("显示主窗体");
34             //添加到popMenu
35             popMenu.add(show);
36             popMenu.add(exit);
37             trayIcon.setPopupMenu(popMenu);
38             systemTray = SystemTray.getSystemTray();  //获得托盘对象
39             try {
40                 systemTray.add(trayIcon);    //添加托盘图标
41             } catch (AWTException e) {
42                 e.printStackTrace();
43             }
44         //添加监听器
45             exit.addActionListener(new ActionListener() {
46                 public void actionPerformed(ActionEvent arg0) {
47                     System.exit(0);
48                 }
49             });
50             show.addActionListener(new ActionListener() {
51
52                 @Override
53                 public void actionPerformed(ActionEvent arg0) {
54                     showFrame();
55                 }
56             });
57         }
58     }
59     //显示窗体
60     public void showFrame() {
61         setVisible(true);
62     }
63
64     //Main method
65     public static void main(String[] args) {
66         JFrame frame = new SystemTrayDemo();
67         frame.setTitle("使用系统托盘");
68         frame.setSize(300,200);
69         frame.setLocationRelativeTo(null);
70         frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);   //注意: 不能设置为JFrame.EXIT_ON_CLOSE,否则会直接退出程序
71
72     }
73
74 }
时间: 2024-10-06 18:57:24

java应用程序-系统托盘的相关文章

java web 程序---投票系统

1.这里会连接数据库--JDBC的学习实例 一共有3个页面. 2.第一个页面是一个form表单,第二个页面是处理数据,第三个页面是显示页面 vote.jsp ? 1 2 3 4 5 6 7 8 9 10 11 12 <body bgcolor="green">    选择你要投票的人:    <form action="vote_end.jsp">        <input type="radio" name=&q

玩转VC++系统托盘程序(WIN8)

 WINDOWS系统托盘是一个特殊区域,通常在桌面的右下角,也就是任务栏的右边.系统常驻在托盘的程序有时钟,音量控制,输入法,网络状态等.第三方应用如QQ程序也是一个典型的托盘程序,当最小化时企鹅会乖乖的待在屏幕右下角等待主人的呼唤. 系统托盘的方便之处在于,程序在暂时不用时,将它放到托盘里,随用随叫,不必将其关闭.而QQ在接收到消息后,也会在托盘中闪动提示,十分人性化. 那么如何用VC++来开发托盘程序呢?下面会用一个例子来玩转WINDOWS托盘程序. 首先,定义一下需要的功能.(需求确定

使用electron将应用程序加入到系统托盘

博主电脑??进水坏了之后,MDZZ......来回折腾好几个来回,第三次维修店??拿电脑??,终于修好了~.废话不多一如既往先上图     一.将应用程序加入系统托盘 微信对于现代人来说已经是一种生活方式,支持单人.多人参与的一款跨平台的通讯工具. 通过手机网络发送语音.图片.视频和文字.其主要核心技术功能是(仅代表博主个人观点) InstantMessaging(即时通讯,实时传讯) 原谅博主资历尚浅,这里暂且不述~. 微信虽然大家都用,但也不见得自己无论是从产品方面或是技术方面会用/了解她,

使用JVM管理工具jvisualvm,系统提示&quot;无法检测到本地java应用程序&quot;的原因和解决办法

我使用的JDK版本是1.6.0_37版本,操作系统是windows xp,今天想使用下%JAVA_HOME%/bin/目录下的一些管理工具,结果遇到麻烦了.使用JPS命令,无法列出本地运行的java虚拟机:使用jvisualvm,提示"无法检测到本地java应用程序". 这个问题的原因可以看下:http://docs.oracle.com/javase/1.5.0/docs/guide/management/faq.html#win1 大概原因有2种: 1.操作系统的临时文件目录所在的

Java 为程序创建日志系统

使用JAVA创建日志系统有两种方法 1.使用log4j操作日志文件 2.使用系统重定向输出日志信息 方法1:使用log4j操作日志文件(可使用jar或者xml) 步骤1:下载log4j.jar 下载地址:http://mirrors.hust.edu.cn/apache/logging/log4j/1.2.17/log4j-1.2.17.zip 步骤2:导入log4j.jar 1.在当前工程处右键>new(新建)>Folder(文件夹)<没找到的话选Other>wizards>

ava SystemTray类(系统托盘)和TrayIcon类(托盘图标)

利用SystemTray类可以访问系统托盘,每个Java应用程序在运行时都会被分配一个该类的实例,可以通过该类的静态方法getSystemTray()获得.某些系统可能不支持系统托盘功能,此时可以通过静态方法isSupported()判断当前系统是否支持该功能,如果支持则返回true,否则返回false. 通过方法add(TrayIcon trayIcon)可以为当前应用程序添加托盘图标到系统托盘:可以为一个应用程序添加多个托盘图标:当不再需要托盘图标时,可以通过方法remove(TrayIco

解决 GTK+/GNOME 3 环境下 Java Swing 程序使用本地 GTK+ 主题时菜单无边框 bug 的方法

在 GTK+/GNOME 3 环境下采用默认的 Adwaita 主题时,Java Swing 程序如果使用本地 GTK+ 主题会出现菜单无边框的 bug,这个问题也可能在其他常用的 GTK+ 主题中出现.说这是 Java Swing 的 bug 还是 GTK+/GNOME 3 的主题(如 Adwaita)的 bug 其实意义不是太大.这里给出一个简单的解决办法,其思路是修改 GTK+/GNOME 3 的主题,这里以系统默认的 Adwaita 主题为例: Adwaita 主题文件位于 /usr/s

《java小应用程序(Applet)和java应用程序(Application)分别编写的简单计算器》

Application和Java Applet的区别.Java语言是一种半编译半解释的语言.Java的用户程序分为两类:Java Application和Java Applet.这两类程序在组成结构和执行机制上都有一定的差异,主要体现在以下几方面:(1)运行方式不同.Java Application是完整的程序,可以独立运行:Java Applet程序不能单独运行, 它必须嵌入到用HTML语言编写的Web页面中,通过与Java兼容的浏览器来控制执行.(2)运行工具不同.Java Applicat

基于Bluemix快速构建部署一款Java小程序——微博影响力分析器

一.前言 近年来IT界风云际会,各种新概念如大数据.云平台.虚拟化等,如雨后春笋般层出不穷.而云平台,可以说是近些年来引领时代新潮的边缘概念之一,各大厂商竞相推出各种云产品,抢占云市场高地.近期,IT百年老厂IBM也推出了其花费重金打造的基于CloudFoundry开放标准的云平台Bluemix.本文就旨在从一位普通Java开发者角度,尝鲜Bluemix云平台及其提供的Cloudant服务,快速构建并部署一款Java小程序"微博影响力分析器". 二."微博影响力分析器&quo