- java.lang.Object
-
- java.awt.Desktop
-
public class Desktop extends Object
Desktop
类允许与各种桌面功能进行交互。支持的操作包括:
- 启动用户默认浏览器以显示指定的URI;
- 使用可选的
mailto
URI启动用户默认邮件客户端; - 启动已注册的应用程序来打开,编辑或打印指定的文件。
该类提供与这些操作相对应的方法。 该方法查找在当前平台上注册的关联应用程序,并启动它来处理URI或文件。 如果没有关联的应用程序或相关应用程序无法启动,则抛出异常。 有关支持的操作和功能的完整列表,请参阅
Desktop.Action
。应用程序注册到URI或文件类型。 注册,访问和启动相关应用程序的机制是平台相关的。
每个操作是由
Desktop.Action
类表示的动作类型。注意:当一些操作被调用并且相关联的应用程序被执行时,它将在与启动Java应用程序的系统相同的系统上执行。
- 从以下版本开始:
- 1.6
- 另请参见:
-
Desktop.Action
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static class
Desktop.Action
表示动作类型。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 void
addAppEventListener(SystemEventListener listener)
添加SystemEventListener
的子类型来监听本机系统的通知。void
browse(URI uri)
启动默认浏览器以显示URI
。void
browseFileDirectory(File file)
打开包含file
的文件夹,并在默认的系统文件管理器中选择它。void
disableSuddenTermination()
防止此应用程序突然终止。void
edit(File file)
启动相关的编辑器应用程序并打开一个文件进行编辑。void
enableSuddenTermination()
使此应用程序突然终止。static Desktop
getDesktop()
返回当前桌面上下文的Desktop
实例。static boolean
isDesktopSupported()
测试此类是否在当前平台上得到支持。boolean
isSupported(Desktop.Action action)
测试当前平台是否支持操作。void
mail()
启动用户默认邮件客户端的邮件组合窗口。void
mail(URI mailtoURI)
启动用户默认邮件客户端的邮件组合窗口,填写由mailto:
URI指定的邮件字段。boolean
moveToTrash(File file)
将指定的文件移动到垃圾桶。void
open(File file)
启动相关应用程序以打开文件。void
openHelpViewer()
打开本机帮助查看器应用程序。void
print(File file)
使用相关应用程序的打印命令打印本机桌面打印设备的文件。void
removeAppEventListener(SystemEventListener listener)
删除子类型SystemEventListener
以监听本机系统的通知。void
requestForeground(boolean allWindows)
请求此应用程序移动到前台。void
setAboutHandler(AboutHandler aboutHandler)
安装一个处理程序来显示应用程序的自定义关于窗口。void
setDefaultMenuBar(JMenuBar menuBar)
设置当没有活动帧时使用的默认菜单栏。void
setOpenFileHandler(OpenFilesHandler openFileHandler)
安装在应用程序被要求打开文件列表时通知的处理程序。void
setOpenURIHandler(OpenURIHandler openURIHandler)
安装在请求应用程序打开URL时通知的处理程序。void
setPreferencesHandler(PreferencesHandler preferencesHandler)
安装一个处理程序来显示应用程序的自定义首选项窗口。void
setPrintFileHandler(PrintFilesHandler printFileHandler)
安装在应用程序被要求打印文件列表时通知的处理程序。void
setQuitHandler(QuitHandler quitHandler)
安装处理程序,确定应用程序是否应该退出。void
setQuitStrategy(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
-
-