java实现系统托盘图标
2007-07-20 19:03
489 查看
在VC和.NET中实现系统托盘图标都很容易,可以直接使用系统api实现,在java中要实现系统托盘就不是一件容易的事了,之前曾经在网上看到有人也调用windows的api函数实现了系统托盘,真是强人,其实在jdk1.6中新增了一个用于实现系统托盘的类java.awt.SystemTray,这样java也可以方便的使用系统托盘了,下面是一个例子:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
public void systemTray()
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
try
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
if (java.awt.SystemTray.isSupported())
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{// 判断当前平台是否支持系统托盘
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
java.awt.SystemTray st = java.awt.SystemTray.getSystemTray();
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Image image = Toolkit.getDefaultToolkit().getImage(
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
getClass().getResource("/trans/resourses/ipmsg.gif"));//定义托盘图标的图片
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
java.awt.TrayIcon ti = new java.awt.TrayIcon( image);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
ti.setToolTip ( "文件传输工具 ");
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
ti.setPopupMenu ( this.popupMenu1); //为托盘添加右键菜单
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
st.add(ti);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
catch (Exception e)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
唯一的缺点是现在大部分人使用的还是jre1.5及一下版本,在很多机器上不能执行,但已经是一个很大的进步了。
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
public void systemTray()
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
try
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
if (java.awt.SystemTray.isSupported())
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{// 判断当前平台是否支持系统托盘
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
java.awt.SystemTray st = java.awt.SystemTray.getSystemTray();
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Image image = Toolkit.getDefaultToolkit().getImage(
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
getClass().getResource("/trans/resourses/ipmsg.gif"));//定义托盘图标的图片
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
java.awt.TrayIcon ti = new java.awt.TrayIcon( image);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
ti.setToolTip ( "文件传输工具 ");
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
ti.setPopupMenu ( this.popupMenu1); //为托盘添加右键菜单
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
st.add(ti);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
catch (Exception e)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
唯一的缺点是现在大部分人使用的还是jre1.5及一下版本,在很多机器上不能执行,但已经是一个很大的进步了。
相关文章推荐
- java程序如何实现右下角系统托盘图标显示
- java实现最小化到系统托盘图标的代码
- Java swing 仿QQ实现系统托盘图标(下)
- Windows系统托盘图标程序之Java实现
- Windows系统托盘图标程序之Java实现
- 强!简洁!SWT实现任务栏图标(系统托盘),带菜单和ToolTip
- Qt/PyQt的系统托盘图标(SystemTrayIcon)实现
- JAVA实现系统托盘
- 系统托盘图标的实现
- MFC 系统托盘图标实现,包括双击图标和右键图标菜单
- java 实现关机工具,托盘图标
- Java实现系统栏托盘
- C#下实现动态系统托盘图标
- C#下实现动态系统托盘图标
- C#下实现动态系统托盘图标
- 用J2SE6.0试用 - 用新增API实现TrayIcon系统托盘图标
- C#实现WinForm程序的动态系统托盘图标
- 实现将程序图标显示在系统托盘
- c# 动态系统托盘图标实现
- Java程序实现系统托盘菜单