使用J2SE6中的SystemTray和TrayIcon实现系统托盘
2011-12-22 13:24
344 查看
以前在做系统托盘功能时,基本都是使用开源的trayicon实现的,因为J2SE中没有提供这样的功能。但是从J2SE6开始,已经支持了。在java.awt中增加了俩个类,一个是SystemTray,另一个是TrayIcon。
每个java应用程序中,都会有一个缺省的SystemTray实例,可以通过SystemTray.getSystemTray()方法得到SystemTray实例。而TrayIcon才是真正的系统托盘内容,也就是说,TrayIcon是通过SystemTray才添加到系统托盘中的。系统托盘中的其他内容,比如菜单、图片、提示能都是通过TrayIcon封装的。
添加一个系统托盘,可以这样调用:
SystemTray tray = SystemTray.getSystemTray();
tray.add(trayIcon);
而删除一个系统托盘,就可以这样:
SystemTray.getSystemTray().remove(trayIcon);
下面给出一个基于JFrame对应用界面程序实现最小化时隐藏到系统托盘的功能:
import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JButton; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; import java.awt.event.*; import java.awt.*; public class SysTrayFrame extends JFrame { private TrayIcon trayIcon; BorderLayout borderLayout1 = new BorderLayout(); JPanel root = new JPanel(); JButton exit = new JButton(); public SysTrayFrame() { try { jbInit(); pack(); this.initTrayIcon(); } catch (Exception exception) { exception.printStackTrace(); } } private void jbInit() throws Exception { this.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); this.addWindowListener(new WindowAdapter(){ //捕获窗口关闭事件 public void windowClosing(WindowEvent e){ if(SystemTray.isSupported()){ setVisible(false); minimizeToTray(); } else{ System.exit(0); } } //捕获窗口最小化事件 public void windowIconified(WindowEvent e){ if(SystemTray.isSupported()){ setVisible(false); |
相关文章推荐
- 使用JDesktop Integration Components实现桌面系统托盘
- JavaFx2 实现系统托盘 (使用swing的方法)
- 用J2SE6.0试用 - 用新增API实现TrayIcon系统托盘图标
- 使用JDesktop Integration Components实现桌面系统托盘
- 使用Java实现系统托盘功能的介绍(附源码以及截图)
- Qt/PyQt的系统托盘图标(SystemTrayIcon)实现
- Qt/PyQt的系统托盘图标(SystemTrayIcon)实现
- Qt/PyQt的系统托盘图标(SystemTrayIcon)实现
- Windows平台下使用Dokan实现文件系统的开发
- iOS 使用photokit框架获取系统相册,实现多选,全选。
- 入离职管理系统——使用注解实现依赖注入
- Qt系统对话框中文化及应用程序实现重启及使用QSS样式表文件及使用程序启动界面
- 使用Live555类库实现的网络直播系统
- Swing编程帮助,美化包的使用以及系统托盘
- Java实现把窗体隐藏到系统托盘方法
- android自定义View实现裁剪图片功能,不使用系统的
- 使用SAP标准功能实现复杂ABAP对象在不同系统间的迁移
- 多线程之使用读写锁ReentrantReadWriteLock实现缓存系统
- 基于Linux系统调用使用php实现一个在线编译运行C语言程序的系统
- JTree实现文件树——使用系统图标