- java.lang.Object
-
- java.awt.Desktop
-
public class Desktop extends Object
Desktop类允许与各种桌面功能进行交互。支持的操作包括:
- 启动用户默认浏览器以显示指定的URI;
- 使用可选的
mailtoURI启动用户默认邮件客户端; - 启动已注册的应用程序来打开,编辑或打印指定的文件。
该类提供与这些操作相对应的方法。 该方法查找在当前平台上注册的关联应用程序,并启动它来处理URI或文件。 如果没有关联的应用程序或相关应用程序无法启动,则抛出异常。 有关支持的操作和功能的完整列表,请参阅
Desktop.Action。应用程序注册到URI或文件类型。 注册,访问和启动相关应用程序的机制是平台相关的。
每个操作是由
Desktop.Action类表示的动作类型。注意:当一些操作被调用并且相关联的应用程序被执行时,它将在与启动Java应用程序的系统相同的系统上执行。
- 从以下版本开始:
- 1.6
- 另请参见:
-
Desktop.Action
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static classDesktop.Action表示动作类型。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 voidaddAppEventListener(SystemEventListener listener)添加SystemEventListener的子类型来监听本机系统的通知。voidbrowse(URI uri)启动默认浏览器以显示URI。voidbrowseFileDirectory(File file)打开包含file的文件夹,并在默认的系统文件管理器中选择它。voiddisableSuddenTermination()防止此应用程序突然终止。voidedit(File file)启动相关的编辑器应用程序并打开一个文件进行编辑。voidenableSuddenTermination()使此应用程序突然终止。static DesktopgetDesktop()返回当前桌面上下文的Desktop实例。static booleanisDesktopSupported()测试此类是否在当前平台上得到支持。booleanisSupported(Desktop.Action action)测试当前平台是否支持操作。voidmail()启动用户默认邮件客户端的邮件组合窗口。voidmail(URI mailtoURI)启动用户默认邮件客户端的邮件组合窗口,填写由mailto:URI指定的邮件字段。booleanmoveToTrash(File file)将指定的文件移动到垃圾桶。voidopen(File file)启动相关应用程序以打开文件。voidopenHelpViewer()打开本机帮助查看器应用程序。voidprint(File file)使用相关应用程序的打印命令打印本机桌面打印设备的文件。voidremoveAppEventListener(SystemEventListener listener)删除子类型SystemEventListener以监听本机系统的通知。voidrequestForeground(boolean allWindows)请求此应用程序移动到前台。voidsetAboutHandler(AboutHandler aboutHandler)安装一个处理程序来显示应用程序的自定义关于窗口。voidsetDefaultMenuBar(JMenuBar menuBar)设置当没有活动帧时使用的默认菜单栏。voidsetOpenFileHandler(OpenFilesHandler openFileHandler)安装在应用程序被要求打开文件列表时通知的处理程序。voidsetOpenURIHandler(OpenURIHandler openURIHandler)安装在请求应用程序打开URL时通知的处理程序。voidsetPreferencesHandler(PreferencesHandler preferencesHandler)安装一个处理程序来显示应用程序的自定义首选项窗口。voidsetPrintFileHandler(PrintFilesHandler printFileHandler)安装在应用程序被要求打印文件列表时通知的处理程序。voidsetQuitHandler(QuitHandler quitHandler)安装处理程序,确定应用程序是否应该退出。voidsetQuitStrategy(QuitStrategy strategy)设置用于退出此应用程序的默认策略。
-
-
-
方法详细信息
-
getDesktop
public static Desktop getDesktop()
- 结果
- 桌面实例
- 异常
-
HeadlessException- 如果GraphicsEnvironment.isHeadless()返回true -
UnsupportedOperationException- 如果当前平台不支持此类 - 另请参见:
-
isDesktopSupported(),GraphicsEnvironment.isHeadless()
-
isDesktopSupported
public static boolean isDesktopSupported()
测试此类是否在当前平台上得到支持。 如果支持,请使用getDesktop()检索实例。- 结果
-
true如果在当前平台上支持此类;false否则 - 另请参见:
-
getDesktop()
-
isSupported
public boolean isSupported(Desktop.Action action)
测试当前平台是否支持操作。即使平台支持操作,文件或URI可能没有注册的操作应用程序。 例如,大多数平台支持
Desktop.Action.OPEN操作。 但是对于特定文件,可能没有注册的应用程序来打开它。 在这种情况下,isSupported(Action)可能会返回true,但相应的动作方式会抛出一个IOException。- 参数
-
action- 指定的Desktop.Action - 结果
-
true如果当前平台支持指定的动作;false否则 - 另请参见:
-
Desktop.Action
-
open
public void open(File file) throws IOException
启动相关应用程序以打开文件。如果指定的文件是目录,则启动当前平台的文件管理器以将其打开。
- 参数
-
file- 要与相关应用程序打开的文件 - 异常
-
NullPointerException- 如果file是null -
IllegalArgumentException- 如果指定的文件不存在 -
UnsupportedOperationException- 如果当前平台不支持Desktop.Action.OPEN操作 -
IOException- 如果指定的文件没有关联的应用程序或相关应用程序无法启动 -
SecurityException- 如果安全管理器存在,并且其SecurityManager.checkRead(java.lang.String)方法拒绝对该文件的读取访问,或者拒绝AWTPermission("showWindowWithoutWarningBanner")权限,或者调用线程不允许创建子进程 - 另请参见:
-
AWTPermission
-
edit
public void edit(File file) throws IOException
启动相关的编辑器应用程序并打开一个文件进行编辑。- 参数
-
file- 要打开进行编辑的文件 - 异常
-
NullPointerException- 如果指定的文件是null -
IllegalArgumentException- 如果指定的文件不存在 -
UnsupportedOperationException- 如果当前平台不支持Desktop.Action.EDIT操作 -
IOException- 如果指定的文件没有关联的编辑器,或相关的应用程序无法启动 -
SecurityException- 如果安全管理器存在,并且其SecurityManager.checkRead(java.lang.String)方法拒绝对该文件的读取访问,或者SecurityManager.checkWrite(java.lang.String)方法拒绝对该文件的写入访问,否则拒绝AWTPermission("showWindowWithoutWarningBanner")权限,或者调用线程不允许创建子进程 - 另请参见:
-
AWTPermission
-
print
public void print(File file) throws IOException
使用相关应用程序的打印命令打印本机桌面打印设备的文件。- 参数
-
file- 要打印的文件 - 异常
-
NullPointerException- 如果指定的文件是null -
IllegalArgumentException- 如果指定的文件不存在 -
UnsupportedOperationException- 如果当前平台不支持Desktop.Action.PRINT操作 -
IOException- 如果指定的文件没有可用于打印的关联应用程序 -
SecurityException- 如果安全管理器存在,并且其SecurityManager.checkRead(java.lang.String)方法拒绝对该文件的读取访问,或其SecurityManager.checkPrintJobAccess()方法拒绝打印该文件的权限,或者调用线程不允许创建子进程
-
browse
public void browse(URI uri) throws IOException
启动默认浏览器以显示URI。 如果默认浏览器无法处理指定URI,申请登记办理URIs指定类型的调用。 应用程序根据URI定义的URI的协议和路径确定。如果调用线程没有必要的权限,并且这是从applet中调用的,则使用
AppletContext.showDocument()。 类似地,如果调用没有必要的权限,并且这是从Java Web Started应用程序中调用的,则使用BasicService.showDocument()。- 参数
-
uri- 要在用户默认浏览器中显示的URI - 异常
-
NullPointerException- 如果uri是null -
UnsupportedOperationException- 如果当前平台不支持Desktop.Action.BROWSE操作 -
IOException- 如果未找到用户默认浏览器,或者无法启动,或默认处理程序应用程序无法启动 -
SecurityException- 如果安全管理器存在,并且它拒绝AWTPermission("showWindowWithoutWarningBanner")权限,或者调用线程不允许创建子进程; 而不是从applet或Java Web Started应用程序中调用 -
IllegalArgumentException- 如果必要的权限不可用,并且URI不能转换为URL - 另请参见:
-
URI,AWTPermission,AppletContext
-
mail
public void mail() throws IOException启动用户默认邮件客户端的邮件组合窗口。- 异常
-
UnsupportedOperationException- 如果当前平台不支持Desktop.Action.MAIL操作 -
IOException- 如果没有找到用户默认邮件客户端,或无法启动 -
SecurityException- 如果安全管理器存在,并且它拒绝AWTPermission("showWindowWithoutWarningBanner")权限,或者调用线程不允许创建子进程 - 另请参见:
-
AWTPermission
-
mail
public void mail(URI mailtoURI) throws IOException
启动用户默认邮件客户端的邮件合成窗口,填写由mailto:URI指定的邮件字段。A
mailto:URI可以指定包括“to” , “cc” , “subject” , “body”等的消息字段。有关mailto:URI规范的详细信息,请参阅The mailto URL scheme (RFC 2368) 。- 参数
-
mailtoURI- 指定的mailto:URI - 异常
-
NullPointerException- 如果指定的URI是null -
IllegalArgumentException- 如果URI方案不是"mailto" -
UnsupportedOperationException- 如果当前平台不支持Desktop.Action.MAIL操作 -
IOException- 如果用户默认邮件客户端未找到或无法启动 -
SecurityException- 如果安全管理器存在,并且它拒绝了AWTPermission("showWindowWithoutWarningBanner")权限,或者调用线程不允许创建子进程 - 另请参见:
-
URI,AWTPermission
-
addAppEventListener
public void addAppEventListener(SystemEventListener listener)
添加子类型SystemEventListener以监听本机系统的通知。 如果在当前平台上不支持SystemEventListener的子类型,则不起作用。- 参数
-
listener- 听众 - 异常
-
SecurityException- 如果安全管理员存在,并且它拒绝了RuntimePermission("canProcessApplicationEvents")权限 - 从以下版本开始:
- 9
- 另请参见:
-
AppForegroundListener,AppHiddenListener,AppReopenedListener,ScreenSleepListener,SystemSleepListener,UserSessionListener
-
removeAppEventListener
public void removeAppEventListener(SystemEventListener listener)
删除子类型SystemEventListener以监听本机系统的通知。 如果在当前平台上不支持SystemEventListener的子类型,则不起作用。- 参数
-
listener- 听众 - 异常
-
SecurityException- 如果安全管理员存在,并且它拒绝了RuntimePermission("canProcessApplicationEvents")权限 - 从以下版本开始:
- 9
- 另请参见:
-
AppForegroundListener,AppHiddenListener,AppReopenedListener,ScreenSleepListener,SystemSleepListener,UserSessionListener
-
setAboutHandler
public void setAboutHandler(AboutHandler aboutHandler)
安装一个处理程序来显示应用程序的自定义关于窗口。将
AboutHandler设置为null将其恢复为默认行为。- 参数
-
aboutHandler- 响应AboutHandler.handleAbout(AboutEvent)消息的处理程序 - 异常
-
SecurityException- 如果安全管理员存在,并且否认RuntimePermission("canProcessApplicationEvents")权限 -
UnsupportedOperationException- 如果当前平台不支持Desktop.Action.APP_ABOUT操作 - 从以下版本开始:
- 9
-
setPreferencesHandler
public void setPreferencesHandler(PreferencesHandler preferencesHandler)
安装一个处理程序来显示应用程序的自定义首选项窗口。将
PreferencesHandler设置为null将其恢复为默认行为- 参数
-
preferencesHandler-处理程序向响应PreferencesHandler.handlePreferences(PreferencesEvent) - 异常
-
SecurityException- 如果安全管理员存在,并且它拒绝了RuntimePermission("canProcessApplicationEvents")权限 -
UnsupportedOperationException- 如果当前平台不支持Desktop.Action.APP_PREFERENCES操作 - 从以下版本开始:
- 9
-
setOpenFileHandler
public void setOpenFileHandler(OpenFilesHandler openFileHandler)
安装在应用程序被要求打开文件列表时通知的处理程序。- Implementation Note:
-
请注意,对于Mac OS,仅当Java应用程序是捆绑的应用程序时,才会发送通知,其Info.plist中包含一个
CFBundleDocumentTypes阵列。 有关将CFBundleDocumentTypes键添加到应用程序的Info.plist的更多信息,请参阅Info.plist Key Reference 。 - 参数
-
openFileHandler- 处理程序 - 异常
-
SecurityException- 如果安全管理器存在,并且其SecurityManager.checkRead(java.lang.String)方法拒绝对文件的读取访问,或者拒绝RuntimePermission("canProcessApplicationEvents")权限,或者调用线程不允许创建子进程 -
UnsupportedOperationException- 如果当前平台不支持Desktop.Action.APP_OPEN_FILE操作 - 从以下版本开始:
- 9
-
setPrintFileHandler
public void setPrintFileHandler(PrintFilesHandler printFileHandler)
安装在应用程序被要求打印文件列表时通知的处理程序。- Implementation Note:
-
请注意,对于Mac OS,仅当Java应用程序是捆绑的应用程序时,才会发送通知,其Info.plist中包含一个
CFBundleDocumentTypes阵列。 有关将CFBundleDocumentTypes键添加到应用程序的Info.plist的更多信息,请参阅Info.plist Key Reference 。 - 参数
-
printFileHandler- 处理程序 - 异常
-
SecurityException- 如果存在安全管理员,并且其SecurityManager.checkPrintJobAccess()方法拒绝打印的权限,否则将拒绝RuntimePermission("canProcessApplicationEvents")权限 -
UnsupportedOperationException- 如果当前平台不支持Desktop.Action.APP_PRINT_FILE操作 - 从以下版本开始:
- 9
-
setOpenURIHandler
public void setOpenURIHandler(OpenURIHandler openURIHandler)
安装在请求应用程序打开URL时通知的处理程序。 将处理程序设置为null导致所有OpenURIHandler.openURI(OpenURIEvent)请求排入队列,直到设置另一个处理程序。- Implementation Note:
-
请注意,对于Mac OS,仅当Java应用程序是捆绑应用程序时,才会发送通知,其Info.plist中包含一个
CFBundleDocumentTypes阵列。 有关向应用程序的Info.plist添加CFBundleDocumentTypes密钥的更多信息,请参阅Info.plist Key Reference 。 - 参数
-
openURIHandler- 处理程序RuntimePermission("canProcessApplicationEvents")权限,或者调用线程不允许创建子进程 - 异常
-
UnsupportedOperationException- 如果当前平台不支持Desktop.Action.APP_OPEN_URI操作 - 从以下版本开始:
- 9
-
setQuitHandler
public void setQuitHandler(QuitHandler quitHandler)
- 参数
-
quitHandler- 请求退出应用程序时调用的处理程序 - 异常
-
SecurityException- 如果安全管理器存在,并且不允许调用者调用System.exit或者拒绝RuntimePermission("canProcessApplicationEvents")权限 -
UnsupportedOperationException- 如果当前平台不支持Desktop.Action.APP_QUIT_HANDLER操作 - 从以下版本开始:
- 9
-
setQuitStrategy
public void setQuitStrategy(QuitStrategy strategy)
设置用于退出此应用程序的默认策略。 默认是调用SYSTEM_EXIT_0。- 参数
-
strategy- 该应用程序应该关闭的方式 - 异常
-
SecurityException- 如果存在安全管理员,并且不允许主叫方调用System.exit或拒绝RuntimePermission("canProcessApplicationEvents")权限 -
UnsupportedOperationException- 如果当前平台不支持Desktop.Action.APP_QUIT_STRATEGY操作 - 从以下版本开始:
- 9
- 另请参见:
-
QuitStrategy
-
enableSuddenTermination
public void enableSuddenTermination()
使此应用程序突然终止。 调用此方法来指示应用程序的状态已保存,并且不需要通知终止。 让您的应用程序保持终止可以通过避免在应用程序中重新分页,以便在要求退出时改善用户体验。 注意:启用突然终止将允许您的应用程序退出而不通知您的QuitHandler或运行任何关闭挂钩。 例如用户启动的Cmd-Q,注销,重新启动或关闭请求将有效地“杀死”您的应用程序。- 异常
-
SecurityException- 如果安全管理员存在,并且不允许主叫方调用System.exit或者拒绝RuntimePermission("canProcessApplicationEvents")权限 -
UnsupportedOperationException- 如果当前平台不支持Desktop.Action.APP_SUDDEN_TERMINATION操作 - 从以下版本开始:
- 9
- 另请参见:
-
disableSuddenTermination()
-
disableSuddenTermination
public void disableSuddenTermination()
防止此应用程序突然终止。 调用此方法来指示您的应用程序具有未保存的状态,如果没有通知,可能不会被终止。- 异常
-
SecurityException- 如果安全管理器存在,并且不允许主叫方调用System.exit或者拒绝RuntimePermission("canProcessApplicationEvents")权限 -
UnsupportedOperationException- 如果当前平台不支持Desktop.Action.APP_SUDDEN_TERMINATION操作 - 从以下版本开始:
- 9
- 另请参见:
-
enableSuddenTermination()
-
requestForeground
public void requestForeground(boolean allWindows)
请求此应用程序移动到前台。- 参数
-
allWindows- 如果这个应用程序的所有窗口都应该被移动到前台,或者只是最前面的一个 - 异常
-
SecurityException- 如果安全管理器存在并且它拒绝了RuntimePermission("canProcessApplicationEvents")权限。 -
UnsupportedOperationException- 如果当前平台不支持Desktop.Action.APP_REQUEST_FOREGROUND操作 - 从以下版本开始:
- 9
-
openHelpViewer
public void openHelpViewer()
打开本机帮助查看器应用程序。- Implementation Note:
- 请注意,对于Mac OS,如果帮助书已添加到应用程序包并在Info.plist中与CFBundleHelpBookFolder注册,则会打开本机帮助查看器应用程序
- 异常
-
SecurityException- 如果安全管理员存在,并且它拒绝RuntimePermission("canProcessApplicationEvents")权限。 -
UnsupportedOperationException- 如果当前平台不支持Desktop.Action.APP_HELP_VIEWER操作 - 从以下版本开始:
- 9
-
setDefaultMenuBar
public void setDefaultMenuBar(JMenuBar menuBar)
设置当没有活动帧时使用的默认菜单栏。- 参数
-
menuBar- 当没有其他框架处于活动状态时使用 - 异常
-
SecurityException- 如果安全管理器存在,并且它拒绝了RuntimePermission("canProcessApplicationEvents")权限。 -
UnsupportedOperationException- 如果当前平台不支持Desktop.Action.APP_MENU_BAR操作 - 从以下版本开始:
- 9
-
browseFileDirectory
public void browseFileDirectory(File file)
打开包含file的文件夹,并在默认的系统文件管理器中选择它。- 参数
-
file- 该文件 - 异常
-
SecurityException- 如果安全管理器存在,并且其SecurityManager.checkRead(java.lang.String)方法拒绝对文件的读访问 -
UnsupportedOperationException- 如果当前平台不支持Desktop.Action.BROWSE_FILE_DIR操作 -
NullPointerException- 如果file是null -
IllegalArgumentException- 如果指定的文件不存在 - 从以下版本开始:
- 9
-
moveToTrash
public boolean moveToTrash(File file)
将指定的文件移动到垃圾桶。- 参数
-
file- 该文件 - 结果
- 如果成功将文件移动到垃圾箱,则返回true。
- 异常
-
SecurityException- 如果存在安全管理员,并且其SecurityManager.checkDelete(java.lang.String)方法拒绝删除该文件 -
UnsupportedOperationException- 如果当前平台不支持Desktop.Action.MOVE_TO_TRASH操作 -
NullPointerException- 如果file是null -
IllegalArgumentException- 如果指定的文件不存在 - 从以下版本开始:
- 9
-
-