- 浏览: 2020252 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (795)
- java (263)
- 聚类搜索引擎 (9)
- 经验之谈 (67)
- DSP (3)
- C++ (140)
- Linux (37)
- SNMP (6)
- Python (6)
- 数据库 (61)
- 网络 (20)
- 算法 (15)
- 设计模式 (4)
- 笔试题 (38)
- 散文 (35)
- 数据结构 (9)
- 银行知识 (0)
- 榜样 (9)
- Lucene (15)
- Heritrix (6)
- MetaSeeker (0)
- netbeans (12)
- php (3)
- 英语 (8)
- DB2 (0)
- java基础 (5)
- mongodb & hadoop (4)
- Javascript (7)
- Spring (4)
- ibatis & myibatis (1)
- velocity (1)
- 微服务 (0)
- paddle (1)
- 第三方 (0)
- 知识沉淀 (1)
- 建模 (0)
最新评论
-
0372:
标示对java很陌生!
中文乱码解决的4种方式 -
梦留心痕:
Java中\是转意字符, 可是你的这句话我没看懂,只要把得到的 ...
java中如何忽略字符串中的转义字符--转载 -
yanjianpengit:
[b][/b]
java为什么非静态内部类里面不能有静态成员 -
springdata-jpa:
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
eclipse 如何把java项目转成web项目 -
qq1130127172:
,非常好。
(转)SpringMVC 基于注解的Controller @RequestMapping @RequestParam..
SystemTray意为桌面的系统托盘,在Windows下表现为任务状态栏的一个图标,在很多的应用中都有体现,如及时通讯软件(MSN、QQ),监控类软件(杀毒软件)等。
在 Java 6的java.awt包下提供了SystemTray和TrayIcon类,这两个类可以实现系统托盘功能,下面让我们看看如何去实现系统托盘。实现的流 程:捕获关闭窗口事件、隐藏窗口、显示托盘图标,鼠标右击托盘图标、显示弹出菜单(自动)、选择菜单的显示窗口项,再显示窗口、隐藏托盘图标。
先 了解一下SystemTray和TrayIcon这两个类。每一个Java应用都会包含一个SystemTray实例,这个不需要你去实例化,你可以通过 SystemTray.getSystemTray()获取,但是不是所有的系统和平台支持系统托盘的,因此我们必须先判断系统是否支持系统托盘,检测是 否支持托盘的方法是 isSupported() 。
接下来我们就要在SystemTray中添加TrayIcon,这样在托盘区就会显示一个新的托盘图标。TrayIcon有四部分组成:名称、图标、弹出菜单和事件,所以我们将这四方面做好就可以完成其既定的功能。
下面是例子程序:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package Frame; /** * * @author max */ import java.awt.AWTException; import java.awt.Image; import java.awt.MenuItem; import java.awt.PopupMenu; import java.awt.SystemTray; import java.awt.Toolkit; import java.awt.TrayIcon; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.WindowConstants; public class TrayIconAdvanced extends JFrame { private TrayIcon ti; public static void main(String[] args) { TrayIconAdvanced frame = new TrayIconAdvanced(); frame.setTitle("TrayIconAdvanced"); frame.setVisible(true); frame.setSize(200, 65); frame.setLocation(300, 200); } public TrayIconAdvanced() { setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { if (SystemTray.isSupported()) { setVisible(false);//隐藏窗口 minimizeToTray();//如果系统支持托盘图标,将窗口放入系统托盘区 } else { System.exit(0);//否则结束程序 } } }); JPanel root = new JPanel(); JButton exitButton = new JButton("Exit"); exitButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0);//结束程序 } }); root.add(exitButton); getContentPane().add(root); pack(); initTi(); } private void initTi() { Image image = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("TrayIcon.gif")); PopupMenu popupTi = new PopupMenu();//弹出菜单 MenuItem showItem = new MenuItem("Show");//菜单项 ActionListener showListener = new ActionListener() { public void actionPerformed(ActionEvent e) { setVisible(true);//重新显示窗口 SystemTray.getSystemTray().remove(ti);//从系统托盘中移出 } }; showItem.addActionListener(showListener);//菜单行听众 popupTi.add(showItem); ti = new TrayIcon(image, "TrayIcon", popupTi);//图标,标题,右键弹出菜单 ti.addActionListener(showListener);//增加一个双击事件听众 } public void minimizeToTray() { SystemTray tray = SystemTray.getSystemTray(); try { tray.add(ti);//在系统托盘区中增加图标 } catch (AWTException e) { System.err.println(e); } } }
(2)
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package Frame; /** * * @author max */ import java.awt.AWTException; import java.awt.Image; import java.awt.MenuItem; import java.awt.PopupMenu; import java.awt.SystemTray; import java.awt.Toolkit; import java.awt.TrayIcon; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; //import java.net.URL; //import java.net.URLClassLoader; import javax.swing.JFrame; import javax.swing.JLabel; public class TestSystemTray { public static void main(String args[]) { TrayIcon trayIcon = null; if (SystemTray.isSupported()) //判断系统是否支持系统托盘 { SystemTray tray = SystemTray.getSystemTray(); //获取系统托盘 Image image = Toolkit.getDefaultToolkit().getImage("TrayIcon.gif");//载入图片 ActionListener listener = new ActionListener() { public void actionPerformed(ActionEvent e) { //创建一个窗体 JFrame frame = new JFrame(); frame.setBounds(400,400,200,200); JLabel label =new JLabel("welcome JDK1.6"); frame.add(label); frame.setVisible(true); } }; //创建托盘图标的右键弹出菜单,open与exit. PopupMenu popup = new PopupMenu(); MenuItem defaultItem = new MenuItem("open"); defaultItem.addActionListener(listener); MenuItem exitItem = new MenuItem("exit"); exitItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); popup.add(defaultItem); popup.add(exitItem); trayIcon = new TrayIcon(image, "My System Tray ", popup);//创建托盘图标 trayIcon.addActionListener(listener);//双击托盘图标时打开窗体 try { tray.add(trayIcon);//将图标加入到系统托盘区 } catch (AWTException e1) { e1.printStackTrace(); } } } }
发表评论
-
流式计算
2022-02-07 14:31 239private void postHandle(List& ... -
消息队列使用的四种场景介绍
2018-08-09 16:34 2416以下介绍消息队列在实际应用中常用的使用场 ... -
设计模式
2018-04-11 16:49 9411.桥梁模式,将抽象部分与实现部分隔离开,抽象部分持有实现 ... -
Spring boot web可以访问Service和Mapper层
2018-03-26 16:42 2803Spring boot的web层可以访问Service层,然 ... -
FreeMarker的基础语法使用 && 心得和技巧
2018-01-10 10:03 1949FreeMarker是一个模板引 ... -
webService----wss4j+cxf实现WS-Security(基于UsernameToken)
2017-10-23 18:58 1511分享一下wss4j+cxf基于UsernameToken的安 ... -
Spring MVC之LocaleResolver(解析用户区域)
2017-09-23 15:55 2453为了让web应用程序支持国际化,必须识别每个用户的首选区域, ... -
(转)java泛型
2016-11-12 20:29 1598http://www.cnblogs.com/lwbqqyu ... -
java中如何忽略字符串中的转义字符--转载
2016-06-28 16:42 9818原文地址:http://my ... -
(转)关于JAP FetchType.LAZY(hibernate实现)的理解 .
2016-04-27 15:22 5049JPA定义实体之间的关系有如下几种: @OneToOne ... -
(转)hibernate annotation注解方式来处理映射关系
2016-04-26 16:52 1796http://www.cnblogs.com/xiao ... -
代码片段,导出的文件头
2015-11-18 20:34 1565public static void setDownload ... -
(转)为什么要两次调用encodeURI来解决乱码问题
2015-08-03 20:19 2429地址:http://blog.csdn.net/howla ... -
杀死进程
2015-07-21 14:54 1244sudo lsof -i :9000 COMMAND P ... -
批处理batch,执行多个SQL语句
2015-07-15 19:21 10553批处理batch,执行多个SQL语句。 ... -
中文乱码解决的4种方式
2015-07-03 14:20 2587目前收集到4中方法,中文传参一documentPath为例: ... -
GET请求的中文乱码问题及处理意义
2015-07-03 13:47 6598首先看一段乱码的程序 ... -
java.ByteArrayInputStream与ByteArrayOutputStream再次理解
2015-03-16 17:59 3197第一次看到ByteArrayOutputStream的时 ... -
(转)SpringMVC 基于注解的Controller @RequestMapping @RequestParam..
2014-07-28 17:42 2223概述 继 Spring 2.0 对 Spring MVC ... -
java中序列化的serialVersionUID解释
2014-07-25 09:26 1846serialVersionUID: 字面意思上是序列化的版本号 ...
相关推荐
jdk1.6的新功能。import java.awt.SystemTray; 使用这个。。。。
系统托盘下的程序的单个程序的运行,不会运行两个程序
专业的跨平台SystemTray支持Java 6+上的Swing / AWT , GtkStatusIcon和AppIndicator 。 该库提供了OS Native菜单和Swing / AWT菜单,具体取决于OS和桌面环境以及是否启用了AutoDetect(默认设置)。 Linux / ...
java实现系统托盘,像QQ托盘图标!在托盘处点击退出才退出程序。
c++写的win32(MFCbased)系统托盘应用程序。systemtray_src封装了托盘类。systemtraySDK_demo,mfc演示程序。在vc6.0与vs2008下编译通过。
JavaFX+Jfoenix 学习笔记系列文章的JavaFX+Jfoenix 学习笔记(十)--系统托盘及解决中文乱码问题源码
注意事项: 连接MySQL数据库,在数据库内建一个名为System的数据库,再建一张表(名为“登录用户”),字段包括name和password 即可以登录。 例如: name:admin password:1234
CSYSTEMTRAY类声明与实现 CSYSTEMTRAY 托盘编程
系统托盘完整例子,功能完整。是我在codegurn上找到的
从任务栏管理屏幕保护程序活动。
Desktop类和SystemTray类 y9B}ezAWih 在JDK6中 ,AWT新增加了两个类:Desktop和SystemTray,前者可以用来打开系统默认浏览器浏览指定的URL,打开系统默认邮件客户端给指定的邮箱发邮件,用默认应用程序打开或编辑文件...
番茄工作台java 桌面系统托盘应用程序。工作流程当您启动应用程序时,它会在系统托盘中放置图标。 最初它是黄色的,因为它处于待机模式。 红色意味着你应该工作,绿色 - 休息一下。 有可用的上下文弹出菜单,它使...
可以做出类似QQ中提示消息,并且在任务栏中
FXTrayIcon JavaFX应用程序中使用的库,使添加系统任务栏图标更加容易。 FXTrayIcon类处理构建图标,显示通知,创建上下文菜单等所有凌乱的AWT和Swing部分。这意味着FXTrayIcon的用户可以仅使用其已经熟悉的公共API...
乡土 一个Java TrayIcon库,如果在Linux上受支持,则允许您使用Gtk来克服的,该问题可能不会在得到修复。 安装 该项目临时托管在我的个人Maven存储库中,您可以使用以下命令将其添加到pom.xml中: ...
.\Property\SystemTray\SystemTray.cpp .\Property\SystemTray\SystemTray.h .\Property\res\Property.rc2 .\Property\res\NULL.ico .\Property\res\Property.ico .\Property\res\about.bmp .\Property\res\Alert....
这个项目里面多出了:任务栏图标功能实现,和浮动图标的实现(SystemTray 、JWindow) 巩固了线程、序列化等概念,再次使用树形、表格 留心主界面的关闭按钮,我改成隐藏界面,并不是前面的缺省关闭了。
在JDK6中 ,AWT新增加了两个类:Desktop和SystemTray。
Desktop类和SystemTray类 JAXB2实现对象与XML之间的映射 StAX Compiler API 轻量级 Http Server API 插入式注解处理API(Pluggable Annotation Processing API) 用Console开发控制台程序 对脚本语言的支持(如:...
JDK6的新特性之一:Desktop类和SystemTray类 JDK6的新特性之二:使用JAXB2来实现对象与XML之间的映射 JDK6的新特性之三:理解StAX StAX(JSR 173)是JDK6.0中除了DOM和SAX之外的又一种处理XML文档的API JDK6的新特性...