package black.dragon.starttool;
import java.awt.AWTException;
import java.awt.Desktop;
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.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
/**
* @author whuang
*
* @version 1.0, 2008-5-20 create
*/
public class DesktopTrayRun {
private static Desktop desktop;
private static SystemTray st;
private static PopupMenu pm;
public static void main(String[] args) {
if (Desktop.isDesktopSupported()) {// 判断当前平台是否支持Desktop类
desktop = Desktop.getDesktop();
}
if (SystemTray.isSupported()) {// 判断当前平台是否支持系统托盘
st = SystemTray.getSystemTray();
Image image = Toolkit.getDefaultToolkit().getImage("testdata/black_dragon1.png");// 定义托盘图标的图片
createPopupMenu();
TrayIcon ti = new TrayIcon(image, "Desktop Demo Tray", pm);
try {
st.add(ti);
} catch (AWTException ex) {
ex.printStackTrace();
}
}
}
public static void sendMail(String mail) {
if (desktop != null && desktop.isSupported(Desktop.Action.MAIL)) {
try {
desktop.mail(new URI(mail));
} catch (IOException ex) {
ex.printStackTrace();
} catch (URISyntaxException ex) {
ex.printStackTrace();
}
}
}
public static void openBrowser(String url) {
if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) {
try {
desktop.browse(new URI(url));
} catch (IOException ex) {
ex.printStackTrace();
} catch (URISyntaxException ex) {
ex.printStackTrace();
}
}
}
public static void edit() {
if (desktop != null && desktop.isSupported(Desktop.Action.EDIT)) {
try {
File txtFile = new File("test.txt");
if (!txtFile.exists()) {
txtFile.createNewFile();
}
desktop.edit(txtFile);
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
public static void createPopupMenu() {
pm = new PopupMenu();
MenuItem openBrowser = new MenuItem("Open My Blog");
openBrowser.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
openBrowser("http://blog.csdn.net/chinajash");
}
});
MenuItem sendMail = new MenuItem("Send Mail to me");
sendMail.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
sendMail("mailto:chinajash@yahoo.com.cn");
}
});
MenuItem edit = new MenuItem("Edit Text File");
sendMail.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
edit();
}
});
MenuItem exitMenu = new MenuItem("&Exit");
exitMenu.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
pm.add(openBrowser);
pm.add(sendMail);
pm.add(edit);
pm.addSeparator();
pm.add(exitMenu);
}
}
分享到:
相关推荐
jdk1.6的新功能。import java.awt.SystemTray; 使用这个。。。。
系统托盘下的程序的单个程序的运行,不会运行两个程序
系统托盘完整例子,功能完整。是我在codegurn上找到的
专业的跨平台SystemTray支持Java 6+上的Swing / AWT , GtkStatusIcon和AppIndicator 。 该库提供了OS Native菜单和Swing / AWT菜单,具体取决于OS和桌面环境以及是否启用了AutoDetect(默认设置)。 Linux / ...
JDK6的新特性之一:Desktop类和SystemTray类 JDK6的新特性之二:使用JAXB2来实现对象与XML之间的映射 JDK6的新特性之三:理解StAX StAX(JSR 173)是JDK6.0中除了DOM和SAX之外的又一种处理XML文档的API JDK6的新特性...
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 托盘编程
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开发控制台程序 对脚本语言的支持(如:...