| 野马的性格 Java SE 6.0新特性体验 |
|
| 来源:天极yesky 作者:朱先忠编译 加入时间:2006-12-8 访问次数:160 [大 中 小] |
|
⑥“public boolean setWritable(boolean writable)”:这个方法便于设置所有者对于给定抽象路径名的写权限。
【注意】如果存在一个安全管理器并且它的“public void checkWrite(String file)”方法不允许对文件进行写操作的话,则上面列出的每一个方法都会抛出一个SecurityException异常。
File类还提供了如下对应的方法以帮助你获得一个对象当前设置的读、写和执行权限:
①public boolean canRead();
②public boolean canWrite();
③public boolean canExecute()(在Mustang中新引入的)。
我创建了一个简单的展示setWritable()和canWrite()方法用法的名为WritableDemo的应用程序。在这个应用程序中,你能够使一个文件系统对象可写或仅能读取,而且还能查看这一许可的当前设置。本文示例源码中的列表1完整地展示了这个文件WritableDemo.java(略)。
三、 桌面集成
Sun的Java桌面开发小组引入了若干新的特征以进一步提高Java在桌面开发领域的影响。其中三个著名的特征是:Splash屏幕支持(它让应用程序在启动过程中显示Splash屏幕),系统托盘支持(它让应用程序把图标,提示窗信息和弹出菜单添加到系统托盘),和一组新的桌面API。
现在,我们来讨论桌面API,它有助于无缝地把Java应用程序与桌面集成到一起。该API支持Java应用程序使用一个特定的统一资源标识符(URI)启动操作系统的缺省的浏览器;启动OS的缺省的电子邮件客户端;以及启动应用程序以打开、编辑或打印与该应用程序相关联的文件。
桌面API使用OS的文件关联机制来启动关联到特定的文件类型的应用程序。例如,.doc文件扩展经常与微软的Word关联。经由桌面API,一个Java应用程序能够启动Word以打开、打印或编辑与这个扩展名相关联的文件。
在启动浏览器电子邮件客户端或任何应用程序之前,你的Java应用程序必须决定你的OS是否支持该API。这一决定是通过调用java.awt.Desktop类的“public static boolean isDesktopSupported()”方法实现的。如果OS支持该API,这个方法返回true;否则,它返回false。
在调用isDesktopSupported()之后,该应用程序通过调用Desktop的“public static Desktop getDesktop()”方法继续检索Desktop对象。如果OS不支持键盘输入、显示器或鼠标,这个方法将抛出一个java.awt.Headless异常。如果OS不支持该桌面API,则抛出一个UnsupportedOperationException异常。
现在,既然该Java应用程序已经拥有了一个桌面实例,那么,按下来,它就能够调用各种方法以浏览、发送邮件、打开、编辑或打印。在执行任何这些操作之前,该程序可以调用Desktop的“public boolean isSupported(Desktop.Action action)”方法,如果桌面支持该行为(被描述为适合的Desktop.Action枚举实例),则这个方法返回true。这些Desktop.Action枚举如下:
· BROWSE:这个枚举实例描述OS的缺省浏览器的浏览行为。
· MAIL:这个枚举实例描述OS的缺省电子邮件客户端的邮件行为。
· OPEN:这个枚举实例描述与打开一个特定的文件类型相关联的一个应用程序执行的打开行为。
· EDIT:这个枚举实例描述与编辑一个特定的文件类型相关联的一个应用程序执行的编辑行为。
· PRINT:这个枚举实例描述与打印一个特定的文件类型相关联的一个应用程序执行的打印行为。
【注意】在调用相应行为的Desktop方法前,你不必调用“isSupported(Desktop.Action action)”来决定是否支持该行为:你可以直接调用相应的方法,但是之后,你必须处理该方法潜在地抛出的一个UnsupportedOperationException异常。可以从Desktop存取下列行为方法:
①“public void browse(URI uri)”:启动用户缺省的浏览器以显示一个URI—如果浏览器能够处理这个URI的话;否则,它启动该URI缺省的处理器应用程序(这具体要依赖于在java.net.URI类中定义的协议和路径)。
|
|
|
|
|
|