注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

FlyingWind

 
 
 

日志

 
 
 
 

JDK6新特征(一)Desktop和SystemTray  

2008-08-10 14:35:35|  分类: JAVA资料 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

JDK6的新特性系列专贴

cb~+{f<1| JDK6的新特性之一:Desktop类和SystemTray类 
i{Y'L Lj% 在JDK6 中 ,AWT新增加了两个类:Desktop和SystemTray,前者可以用来打开系统默认浏览器浏览指定的URL,打开系统默认邮件客户端给指定的邮箱 发邮件,用默认应用程序打开或编辑文件(比如,用记事本打开以txt为后缀名的文件),用系统默认的打印机打印文档;后者可以用来在系统托盘区创建一个托 盘程序.下面代码演示了Desktop和SystemTray的用法. 
],eV.MHU  
`nhCg?u /** 
{Z_2]w<j
\45^-.r0 * @author chinajash 
Wd]w */ 
bn-pr8t0H import java.awt.Desktop; 
lr,q{ LiJ import java.awt.SystemTray; 
#a^(u+b7 import java.awt.TrayIcon; 
`,{}X l@ import java.awt.Toolkit; 
L_W:ew*R import java.awt.Image; 
87hE2PMf| import java.awt.PopupMenu; 
$sX D,}@ import java.awt.Menu; 
aBa8  import java.awt.MenuItem; 
*KY.qS): import java.awt.AWTException; 
v%7&cCKf import java.io.File; 
O1"/" import java.io.IOException; 
PX2w$us|9 import java.net.URI; 
B!@Wuks import java.net.URISyntaxException; 
},,H!3 import java.awt.event.ActionEvent; 
fxkwv6-1kd import java.awt.event.ActionListener; 
get6&0[nj  
g?#B^ue)3 public class DesktopTray { 
bJ![9@3p=   private static Desktop desktop; 
b;9e_7#   private static SystemTray st; 
@{yT[   private static PopupMenu pm; 
h@v,^r"]V   public static void main(String[] args) { 
)% | >]     if(Desktop.isDesktopSupported()){//判断当前平台是否支持Desktop类 
PU.LQI~         desktop = Desktop.getDesktop(); 
vr}kPZR7X     } 
?p}m*=^     if(SystemTray.isSupported()){//判断当前平台是否支持系统托盘 
d:,TpwJZc         st = SystemTray.getSystemTray(); 
J jV+3r0         Image image = Toolkit.getDefaultToolkit().getImage("netbeans.png");//定义托盘图标的图片          
Nxp=tZAR         createPopupMenu(); 
F7{V8a          TrayIcon ti = new TrayIcon(image, "Desktop Demo Tray", pm); 
ma$?c/N#',         try { 
_cWC`A{?*           st.add(ti); 
 -[F]u         } catch (AWTException ex) { 
\[?n\\:           ex.printStackTrace(); 
~A&Oo7mnD         } 
,WLuqIoK     } 
)w!k?{ED   } 
5uS*<3    
"*&nD   public static void sendMail(String mail){ 
S+EJ#?w     if(desktop!=null && desktop.isSupported(Desktop.Action.MAIL)){ 
V<ylC         try { 
)HY%,_99|&           desktop.mail(new URI(mail)); 
phGPCG@2y         } catch (IOException ex) { 
\dTqb%AN           ex.printStackTrace(); 
+<4{K.En         } catch (URISyntaxException ex) { 
6z sFi           ex.printStackTrace(); 
5DWsZDe"         } 
q@ssanth     }          
Y|, a ;gWT   } 
@C<,2    
-;:m#rZD   public static void openBrowser(String url){ 
Dr`?k-m/     if(desktop!=null && desktop.isSupported(Desktop.Action.BROWSE)){ 
pn+$%?F]Zk         try { 
q9|PQVS           desktop.browse(new URI(url)); 
a6;*%B{*         } catch (IOException ex) { 
9%M{/#@           ex.printStackTrace(); 
iwj+w$=         } catch (URISyntaxException ex) { 
0s.1bV#ld           ex.printStackTrace(); 
[G4t`]         } 
9%NI~aE     } 
.Ul>Bdg   } 
_(PC=r    
 |lB53K   public static void edit(){ 
%h-L>'3     if(desktop!=null && desktop.isSupported(Desktop.Action.EDIT)){ 
=h|xNo,z         try { 
*e6. stn           File txtFile = new File("test.txt"); 
r=A5F~6w           if(!txtFile.exists()){ 
xi2 D6H6             txtFile.createNewFile(); 
iP=GM@i2#b           } 
WR#F\G@           desktop.edit(txtFile); 
m;9;X='VC         } catch (IOException ex) { 
?PBqLHRpD           ex.printStackTrace(); 
{xEhrV3         }  
y8[!%+T     } 
(2CDpi-   } 
Y=>uiaA    
uV[_^@}]   public static void createPopupMenu(){ 
eK p G#'     pm = new PopupMenu(); 
Gy]N1%>     MenuItem openBrowser = new MenuItem("Open My Blog"); 
Y'74@<2-     openBrowser.addActionListener(new ActionListener() { 
S [L9O?         public void actionPerformed(ActionEvent e) { 
          openBrowser("http://blog.csdn.net/chinajash _c>m{)n;5 "); 
z#%>2*fO         } 
_nN^d@FM     }); 
a'4J]ri      
p+x!ohdP?     MenuItem sendMail = new MenuItem("Send Mail to me"); 
L-WH?     sendMail.addActionListener(new ActionListener() { 
p:>m LE?:         public void actionPerformed(ActionEvent e) { 
DN4EVi'           sendMail("mailto:chinajash@yahoo.com.cn"); 
,8&^`e]         } 
u56&8jl     }); 
:@5?6+bjO      
j,ec [}o     MenuItem edit = new MenuItem("Edit Text File"); 
J .2obN     sendMail.addActionListener(new ActionListener() { 
CTVpp'a{         public void actionPerformed(ActionEvent e) { 
~YXxD~nv1o           edit(); 
R53].M.uiy         } 
_&%k39`01     }); 
. NzzCh      
wN <i-4VV1     MenuItem exitMenu = new MenuItem("&Exit"); 
R?[%oQ,-     exitMenu.addActionListener(new ActionListener() { 
MN/8mu%B|         public void actionPerformed(ActionEvent e) { 
inZxlM           System.exit(0); 
n~zJg6"1$         } 
;.dN+^I1     }); 
v/g9N+h     pm.add(openBrowser); 
}X:Mw|A6     pm.add(sendMail); 
x.(UCXW1U     pm.add(edit); 
b%q4K     pm.addSeparator(); 
2/ K!@Ks     pm.add(exitMenu);    
b7^V1$AU   } 
&w>yd9xOZ }  
A6c.3G  
如果在Windows中运行该程序,可以看到在系统托盘区有一个图标,右击该图标会弹出一个菜单,点击Open My Blog会打开IE,并浏览"http://blog.csdn.net/chinajash";点击Send Mail to me会打开Outlook Express给我发邮件;点击Edit Text File会打开记事本编辑在程序中创建的文件test.txt
  评论这张
 
阅读(347)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017