在JDK6中 ,AWT新增加了两个类:Desktop和SystemTray,前者可以用来打开系统默认浏览器浏览指定的URL,打开系统默认邮件客户端给指定的邮箱发邮件,用默认应用程序打开或编辑文件(比如,用记事本打开以txt为后缀名的文件),用系统默认的打印机打印文档;后者可以用来在系统托盘区创建一个托盘程序.下面代码演示了Desktop和SystemTray的用法.
import java.awt.Desktop;
import java.awt.SystemTray;
import java.awt.TrayIcon;
import java.awt.Toolkit;
import java.awt.Image;
import java.awt.PopupMenu;
import java.awt.Menu;
import java.awt.MenuItem;
import java.awt.AWTException;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class DesktopTray {
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("netbeans.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);
}
}
如果在Windows中运行该程序,可以看到在系统托盘区有一个图标,右击该图标会弹出一个菜单,点击Open My Blog会打开IE,并浏览"http://blog.csdn.net/chinajash";点击Send Mail to me会打开Outlook Express给我发邮件;点击Edit Text File会打开记事本编辑在程序中创建的文件test.txt
分享到:
相关推荐
其中,最显著的两个新特性当属`Desktop`类和`SystemTray`类的加入,它们使得Java应用能够更加无缝地集成到桌面环境中,提供了与操作系统更深层次的交互能力。 ### `Desktop`类 `Desktop`类是JDK 6中新增的一个类,...
Java 6 JDK 1.6 引入了许多增强和新...这些新特性显著提高了Java 6的易用性和性能,尤其是在处理桌面应用集成、XML数据操作以及低内存消耗的XML解析方面。开发者可以更有效地利用这些工具,提升应用的质量和用户体验。
1.Desktop类和SystemTray类 2.使用JAXB2来实现对象与XML之间的映射 3.StAX 4.使用Compiler API 5.轻量级Http Server API 6.插入式注解处理API(Pluggable Annotation Processing API) 7.用Console开发控制台程序 8.对...
JDK6的新特性之一_Desktop类和SystemTray类 JDK6的新特性之二_使用JAXB2来实现对象与XML之间的映射 JDK6的新特性之三_理解StAX JDK6的新特性之四_使用Compiler API JDK6的新特性之五_轻量级HttpServer JDK6...
而在JDK6中,Sun将其集成到了Java SE中,使之成为了标准库的一部分。 ##### JAXB2的新特性 JAXB2(JSR 222)相对于JAXB1.0(JSR 31)有了显著的改进,其中包括: - **注解支持**:JAXB2引入了对Java 5注解的支持,...
标题“SystemTray”指的是Java开发工具包(JDK)1.6版本引入的一个新特性,主要用于在操作系统任务栏或通知区域实现图标显示和交互。`SystemTray`是Java AWT(Abstract Window Toolkit)库中的一个类,它提供了一个...
2. **JAXB2对象与XML映射**:JAXB2(Java Architecture for XML Binding)是Java SE 6中的一个关键更新,它允许开发者使用注解轻松地在Java对象和XML文档之间进行映射,极大地简化了数据序列化和反序列化的流程。...
JDK6是Java Development Kit的一个重要版本,它引入了许多新特性以增强开发人员的生产力和应用程序的性能。以下是对JDK6中13个新特性的详细解释: 1. **Desktop类**:这个类提供了与操作系统进行交互的能力,使得...
除了`Desktop`和`SystemTray`类之外,JDK 1.6还引入了许多其他重要的新特性: ##### 1. JAXB 2.0 Java Architecture for XML Binding (JAXB) 2.0是用于将Java对象转换为XML表示形式的标准。JAXB 2.0提供了更强大的...
JDK 1.7,全称为Java Development Kit的第七...这些新特性提升了Java开发的便利性和效率,使得JDK 1.7成为Java发展历程中的一个重要里程碑。通过学习和应用这些特性,开发者可以编写出更加高效、健壮和易于维护的代码。
JDK 1.6 中引入了多个新特性,包括 desktop 类和 systemtray 类、使用 JAXB2 实现对象与 xml 之间映射、理解 STAX、使用 compiler API 等。 七、Hibernate 工作机制 Hibernate 的工作机制可以分为八个步骤:读取并...
6. **Desktop类和SystemTray类**: `java.awt.Desktop`提供了与操作系统桌面交互的能力,如打开文件、浏览网页等;`java.awt.SystemTray`则允许在系统托盘区域添加图标,提供通知和快捷操作。 7. **插入式注解处理...
Java Development Kit (JDK) 1.6,也被称为Java SE 6,是Java平台的一个重要版本,带来了许多新特性和改进,提升了开发效率和应用程序的性能。以下是一些主要的新特性: 1. **改进的编译器** - JDK 1.6中的编译器,...
* Java 6版本中新增了Desktop类和SystemTray类、StAX、Compiler API、轻量级Http Server API、插入式注解处理API、对脚本语言的支持等新特性。 * Java 7版本中新增了Modularization模块化、对动态语言的支持、更多新...
Desktop类和SystemTray类 JAXB2实现对象与XML之间的映射 StAX Compiler API 轻量级 Http Server API 插入式注解处理API(Pluggable Annotation Processing API) 用Console开发控制台程序 对脚本语言的支持(如:...