在jdk6中 ,awt新增加了两个类:desktop和systemtray,前者可以用来打开系统默认浏览器浏览指定的url,打开系统默认邮件客户端给指定的邮箱发邮件,用默认应用程序打开或编辑文件(比如,用记事本打开以txt为后缀名的文件),用系统默认的打印机打印文档;后者可以用来在系统托盘区创建一个托盘程序。下面代码演示了desktop和systemtray的用法。
| /** * * @author chinajash */ 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,并浏览我设定的blog地址;点击send mail to me会打开outlook express给我发邮件;点击edit text file会打开记事本编辑在程序中创建的文件test.txt。
闽公网安备 35060202000074号