`

JDK6的新特性之一:Desktop类和SystemTray类

 
阅读更多
在JDK6中,AWT新增加了两个类:Desktop和SystemTray,前者可以用来打开系统默认浏览器浏览指定的URL,打开系统默认邮件客户端给指定的邮箱发邮件,用默认应用程序打开或编辑文件(比如,用记事本打开以txt为后缀名的文件),用系统默认的打印机打印文档;后者可以用来在系统托盘区创建一个托盘程序.下面代码演示了Desktop和SystemTray的用法.

/**
*
*@authorchinajash
*/
importjava.awt.Desktop;
importjava.awt.SystemTray;
importjava.awt.TrayIcon;
importjava.awt.Toolkit;
importjava.awt.Image;
importjava.awt.PopupMenu;
importjava.awt.Menu;
importjava.awt.MenuItem;
importjava.awt.AWTException;
importjava.io.File;
importjava.io.IOException;
importjava.net.URI;
importjava.net.URISyntaxException;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;

publicclassDesktopTray{
privatestaticDesktopdesktop;
privatestaticSystemTrayst;
privatestaticPopupMenupm;
publicstaticvoidmain(String[]args){
if(Desktop.isDesktopSupported()){//判断当前平台是否支持Desktop类
desktop=Desktop.getDesktop();
}
if(SystemTray.isSupported()){//判断当前平台是否支持系统托盘
st=SystemTray.getSystemTray();
Imageimage=Toolkit.getDefaultToolkit().getImage("netbeans.png");//定义托盘图标的图片
createPopupMenu();
TrayIconti=newTrayIcon(image,"DesktopDemoTray",pm);
try{
st.add(ti);
}catch(AWTExceptionex){
ex.printStackTrace();
}
}
}

publicstaticvoidsendMail(Stringmail){
if(desktop!=null&&desktop.isSupported(Desktop.Action.MAIL)){
try{
desktop.mail(newURI(mail));
}catch(IOExceptionex){
ex.printStackTrace();
}catch(URISyntaxExceptionex){
ex.printStackTrace();
}
}
}

publicstaticvoidopenBrowser(Stringurl){
if(desktop!=null&&desktop.isSupported(Desktop.Action.BROWSE)){
try{
desktop.browse(newURI(url));
}catch(IOExceptionex){
ex.printStackTrace();
}catch(URISyntaxExceptionex){
ex.printStackTrace();
}
}
}

publicstaticvoidedit(){
if(desktop!=null&&desktop.isSupported(Desktop.Action.EDIT)){
try{
FiletxtFile=newFile("test.txt");
if(!txtFile.exists()){
txtFile.createNewFile();
}
desktop.edit(txtFile);
}catch(IOExceptionex){
ex.printStackTrace();
}
}
}

publicstaticvoidcreatePopupMenu(){
pm=newPopupMenu();
MenuItemopenBrowser=newMenuItem("OpenMyBlog");
openBrowser.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
openBrowser("http://blog.csdn.net/chinajash");
}
});

MenuItemsendMail=newMenuItem("SendMailtome");
sendMail.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
sendMail("mailto:chinajash@yahoo.com.cn");
}
});

MenuItemedit=newMenuItem("EditTextFile");
sendMail.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
edit();
}
});

MenuItemexitMenu=newMenuItem("&Exit");
exitMenu.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
System.exit(0);
}
});
pm.add(openBrowser);
pm.add(sendMail);
pm.add(edit);
pm.addSeparator();
pm.add(exitMenu);
}
}

如果在Windows中运行该程序,可以看到在系统托盘区有一个图标,右击该图标会弹出一个菜单,点击OpenMyBlog会打开IE,并浏览"http://blog.csdn.net/chinajash";点击SendMailtome会打开OutlookExpress给我发邮件;点击EditTextFile会打开记事本编辑在程序中创建的文件test.txt

分享到:
评论

相关推荐

    JDK1.6新特性与实战例子

    JDK6的新特性之一:Desktop类和SystemTray类 JDK6的新特性之二:使用JAXB2来实现对象与XML之间的映射 JDK6的新特性之三:理解StAX StAX(JSR 173)是JDK6.0中除了DOM和SAX之外的又一种处理XML文档的API JDK6的新特性...

    JDK6的新特性之一.doc

    Desktop类和SystemTray类 y9B}ezAWih 在JDK6中 ,AWT新增加了两个类:Desktop和SystemTray,前者可以用来打开系统默认浏览器浏览指定的URL,打开系统默认邮件客户端给指定的邮箱发邮件,用默认应用程序打开或编辑文件...

    JDK 6.2.3文文档.rar

    JDK6新特性目录导航: Desktop类和SystemTray类 JAXB2实现对象与XML之间的映射 StAX Compiler API 轻量级 Http Server API 插入式注解处理API(Pluggable Annotation Processing API) 用Console开发控制台程序 对...

    JDK+6.0+ZH+API.chm.zip

    JDK6的新特性之一_Desktop类和SystemTray类 JDK6的新特性之二_使用JAXB2来实现对象与XML之间的映射 JDK6的新特性之三_理解StAX JDK6的新特性之四_使用Compiler API JDK6的新特性之五_轻量级HttpServer JDK6...

    JDK1.6的九大新特性

    JDK1.6的九大新特性 九:Common Annotations 八:对脚本语言的支持 七:用Console开发控制台程序 六:插入式注解处理API(Pluggable Annotation Processing API) ...四:使用Compiler API ...一:Desktop类和SystemTray类

    jdk1.6 九大新特性

    在JDK6中 ,AWT新增加了两个类:Desktop和SystemTray。 前者可以用来打开系统默认浏览器浏览指定的URL,打开系统默认邮件客户端给指定的邮箱发邮件,用默认应用程序打开或编辑文件(比如,用记事本打开以txt为后缀名的...

    JDK_API_16

    在JDK6中 ,AWT新增加了两个类:Desktop和SystemTray。

    java,jdk 1.6新

    在JDK6中 ,AWT新增加了两个类:Desktop和SystemTray。 前者可以用来打开系统默认浏览器浏览指定的URL,打开系统默认邮件客户端给指定的邮箱发邮件,用默认应用程序打开或编辑文件(比如,用记事本打开以txt为后缀名的文件...

    jdk1.6.0_45

    1.Desktop类和SystemTray类 2.使用JAXB2来实现对象与XML之间的映射 3.StAX 4.使用Compiler API 5.轻量级Http Server API 6.插入式注解处理API(Pluggable Annotation Processing API) 7.用Console开发控制台程序 8.对...

    JAVA6新特性介绍.zip

    1.Desktop类和SystemTray类 2.使用JAXB2来实现对象与XML之间的映射 3.StAX 4.使用Compiler API 5.轻量级Http Server API 6.插入式注解处理API(Pluggable Annotation Processing API) 7.用Console开发控制台程序 8.对...

    javaSE代码实例

    第6章 对象和类——Java世界的细胞 77 6.1 面向对象概述 77 6.1.1 面向对象程序设计思想的诞生 77 6.1.2 面向过程与面向对象思想的对比 78 6.1.3 面向对象技术的背景和特点 79 6.2 类的定义与对象的创建...

Global site tag (gtag.js) - Google Analytics