科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Java SE 6.0 桌面API编程

Java SE 6.0 桌面API编程

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

 在默认GUI外观、打印和运行性能方面,Java平台一直在努力缩小本机应用程序和Java应用程序程序是之间的差距。随着Java SE 6(代码名为Mustang)的问世,一些新的功能又被加入,包括新的系统托盘功能。

作者:中国IT实验室 来源:中国IT实验室 2007年9月30日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共3页)

 在调用任何这些行为之前,一个应用程序必须确定是否该Desktop实例支持它们。这与确定是否一个Desktop实例可用是有所不同的。这个Desktop.isDesktopSupported()方法告诉你是否能够创建一个实例。一旦获得一个Desktop对象,你就可以查询该对象来确定支持哪些特定类型的行为。如果该Desktop对象不支持特定的行为,或如果该桌面API本身并不被支持,那么DesktopDemo简单地停用那些受影响的图形组件。如图2所示,在停用状态下,不能使用这些组件来调用桌面特性。

 



 


图2:当不支持桌面API时图形组件被停用。


  通过使用一个新的Desktop实例,下列代码检查负责是否支持Desktop.Action并且启用适当的图形组件:

public DesktopDemo() {
 ...
 //在使用更多的桌面API前,首先检查
 //是否这种API为该特定主机上的特别的虚拟机所支持。
 if (Desktop.isDesktopSupported()) {
  desktop = Desktop.getDesktop();
  // 现在,启用按钮以实现被支持的行为
  enableSupportedActions();
 }
 ...
}
/**
*启用在该主机上被支持的行为。
*这些行为有:打开浏览器,
*打开电子邮件客户端,和使用它们相关联的应用程序打开,编辑与打印文件。
*/
private void enableSupportedActions() {
 if (desktop.isSupported(Desktop.Action.BROWSE)) {
  txtBrowserURI.setEnabled(true);
  btnLaunchBrowser.setEnabled(true);
 }

 if (desktop.isSupported(Desktop.Action.MAIL)) {
  txtMailTo.setEnabled(true);
  btnLaunchEmail.setEnabled(true);
 }
 if (desktop.isSupported(Desktop.Action.OPEN)) {
  rbOpen.setEnabled(true);
 }
 if (desktop.isSupported(Desktop.Action.EDIT)) {
  rbEdit.setEnabled(true);
 }
 if (desktop.isSupported(Desktop.Action.PRINT)) {
  rbPrint.setEnabled(true);
 }

 if (rbEdit.isEnabled() || rbOpen.isEnabled() || rbPrint.isEnabled()) {
  txtFile.setEnabled(true);
  btnLaunchApplication.setEnabled(true);
 }
}


  一旦该应用程序确定了被支持的行为,它即启用适当的图形组件。如果所有的组件都被启用,那么相应的UI应该看上去如图3所示。


图3:当支持桌面API时,启用组件。


  四、 打开浏览器

  调用下列实例方法将打开你的主机的默认浏览器:

public void browse(URI uri) throws IOException


  因为仅当支持相关联的Desktop.ActionDesktopDemo时,UI组件才被启用,所以,在实际调用browse()方法之前,这个简单的演示应用程序不需要进行行为支持检查。然而,在每一种调用之前检查行为支持在实际中将增加程序的健壮性:

if (desktop.isSupported(Desktop.Action.BROWSE)) {
 //启动浏览器
 ...
}


  DesktopDemo把一个java.awt.event.ActionListener添加到每一个按钮上。当被启用时,"Launch Browser"按钮通过它的ActionListener调用下列方法:

private void onLaunchBrowser(java.awt.event.ActionEvent evt) {
 URI uri = null;
 try {
  uri = new URI(txtBrowserURI.getText());
  desktop.browse(uri);
 }
 catch(IOException ioe) {
  ioe.printStackTrace();
 }
 catch(URISyntaxException use) {
  use.printStackTrace();
 }
 ...
}


  这个browse()方法可能抛出各种类型的异常,这包括:当该URI为null时抛出一个NullPointerException异常;如果不支持BROWSE行为将抛出一个UnsupportedOperationException异常;如果不能发现或启动一个缺省的浏览器或应用程序则抛出一个IOException异常;如果一个安全管理器否定一次调用则抛出一个SecurityException异常。

  然而,如果一切顺利,那么听取器(Listener)将从图4中相联系的文本域中检索文本,创建一个URI并且调用browse()方法。上面的代码将启动你的系统的默认浏览器并且指示该浏览器装载该URI,如图5所示。


图4:使用一个特定URI启动默认浏览器。

图5:使用桌面API启动默认浏览器。

 

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章