扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:builder.com.cn 2007年1月15日
关键字:
和JDIC不同,Java 6的Desktop类具备测试某个方法是否被支持的能力,途径是使用isSupported()方法并将Desktop.Action的一个值(BROWSE、OPEN、EDIT、PRINT和MAIL)传递给它。这就提供了一种更加主动的方式来捕捉运行在某个平台上但无法实现Desktop的应用程序。
if(desktop.isSupported(Desktop.Action.BROWSE)) {API上的另外一个变化是browse和mail这两个方法将URI作为参数,而不是将URL和Message实例作为参数。URI是比URL更高一级的抽象,它们横空出世替代URL是显而易见的。打开浏览器的代码看起来相当熟悉;
try { URI uri = new URI("http://uk.builder.com/"); try { desktop.browse(uri); } catch (IOException ex) { … } catch (URISyntaxException ex) { … } }
要注意的是我们捕捉到了一个URISyntaxException而不是MalformedURLException,我们捕捉到的是一个更加一般的IOException,而不是DesktopException。这是一个简单的替换,但是URI是如何完成与Message类同样的任务的呢?查看一下RFC 2368吧,上面提到mailto:协议允许你编写在功能上与Message类相同的URL。但是它在可读性上是个退步;
URI uri=new URI("mailto:bob@example.com? subject=Java6%20Desktop &body=This%20is%20a%20Java6%20Mail%20Example");
这段代码用来编写一个发送到bob@example.xom的电子邮件,它的标题是“This is a Java6 Mail Example”。由于这是一个用URL编码的字符串,所以空格必须被表示成为“%20”。你可以用java.net.URLEncoder.encode()来简化这些字符串的生成。一旦创建好了“mailto:”URI,剩下的就和browse()方法调用一样了;
try { desktop.mail(uri); } catch (IOException ex) { … } catch (URISyntaxException ex) { … }
值得注意的是,JDIC可以与Java 6一起使用,这样你可能希望使用JDIC来支持Java 5及以后的版本,而不需要改变代码,只对完全使用新Java 6和以后的版本开发的项目使用新的Java 6 Desktop。
JDIC中没有加到Java 6里的一个核心要素是将本机浏览器组件嵌入到Java应用程序里的能力。Java的一个长期存在的问题是除了商业的HTML浏览器组件之外,目前还没有能够生成现代Web页面的优秀的、完整的方案。Swing HTML EditorKit只能够用于有限的HTML,但是如果你想要自己的应用程序能够生成更加复杂和现代的CSS和DHTML页面,或者看到Flash、AJAX或者Java小程序,那么你就会发现上面这些都得不到支持。对可嵌入JDIC的浏览器的支持解决了这一问题,方式是使用你正在使用的平台上默认的浏览器,并将它嵌入到一个你能够集成到自己应用程序里的AWT组件里。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者