JavaSE6.0桌面API编程 (中)

文章作者 100test 发表时间 2007:03:14 17:03:33
来源 100Test.Com百考试题网


  在调用任何这些行为之前,一个应用程序必须确定是否该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时,启用组件。



相关文章


64位环境中的Java(下)
64位环境中的Java(上)
JAVA教程:解析Java的多线程机制
JAVA模拟题:TestoftheJavaSkill(1)
JavaSE6.0桌面API编程 (中)
JAVA基础:利用Java实现zip压缩解压缩
JavaSE6.0桌面API编程 (上)
JAVA模拟题:TestoftheJavaSkill(3)
JAVA模拟题:TestoftheJavaSkill(4)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛