Класс Desktop
- 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
Вложенные классы
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class | Desktop.Action | Представляет тип действия. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | addAppEventListener(SystemEventListener listener) | Добавляет подтипы |
void | browse(URI uri) | Запускает стандартный браузер для отображения |
void | browseFileDirectory(File file) | Открывает папку, содержащую |
void | disableSuddenTermination() | Препятствует внезапному завершению этого приложения. |
void | edit(File file) | Запускает связанное приложение-редактор и открывает файл для редактирования. |
void | enableSuddenTermination() | Разрешает внезапное завершение этого приложения. |
static Desktop | getDesktop() | Возвращает экземпляр |
static boolean | isDesktopSupported() | Проверяет, поддерживается ли этот класс в текущей платформе. |
boolean | isSupported(Desktop.Action action) | Проверяет, поддерживается ли действие в текущей платформе. |
void | mail() | Запускает окно составления письма стандартного почтового клиента пользователя. |
void | mail(URI mailtoURI) | Запускает окно составления письма стандартного почтового клиента пользователя, заполняя поля сообщения, указанные в |
boolean | moveToTrash(File file) | Перемещает указанный файл в корзину. |
void | open(File file) | Запускает ассоциированное приложение для открытия файла. |
void | openHelpViewer() | Открывает родное приложение просмотра справки. |
void | print(File file) | Печатает файл с помощью родного средства печати рабочего стола, используя команду печати связанного приложения. |
void | removeAppEventListener(SystemEventListener listener) | Удаляет подтипы |
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) | Устанавливает стандартную стратегию завершения работы этого приложения. |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Методы
getDesktop
public static Desktop getDesktop()
Возвращает Desktop экземпляр текущего контекста рабочего стола. На некоторых платформах API рабочего стола может быть не поддерживается; используйте метод isDesktopSupported(), чтобы определить, поддерживается ли текущий рабочий стол.
- Возвращает:
- экземпляр Desktop
- Исключение:
-
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
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.
- Параметры:
-
uri- URI, который нужно отобразить в браузере по умолчанию - Исключение:
-
NullPointerException- еслиuriравноnull -
UnsupportedOperationException- если текущая платформа не поддерживает действиеDesktop.Action.BROWSE -
IOException- если браузер по умолчанию не найден или не удалось запустить, или приложение по умолчанию не удалось запустить -
SecurityException- если менеджер безопасности существует и отказывается вAWTPermission("showWindowWithoutWarningBanner")разрешении, или вызывающей нити не разрешено создавать дочерний процесс - См. также:
-
URI,AWTPermission
public void mail()
throws IOException Запускает окно создания письма почтового клиента по умолчанию.
- Исключение:
-
UnsupportedOperationException- если текущая платформа не поддерживает действиеDesktop.Action.MAIL -
IOException- если почтовый клиент по умолчанию не найден или не удалось запустить -
SecurityException- если менеджер безопасности существует и отказывается вAWTPermission("showWindowWithoutWarningBanner")разрешении, или вызывающей нити не разрешено создавать дочерний процесс - См. также:
AWTPermission
public void mail(URI mailtoURI)
throws IOException Запускает окно создания письма почтового клиента по умолчанию, заполняя поля сообщения, указанные в
mailto: URI.
mailto: URI может указывать поля сообщения, включая "to", "cc", "subject", "body" и т.д. См. Схема URL mailto (RFC 2368) для mailto: спецификации URI.
- Параметры:
-
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)
Устанавливает обработчик, который уведомляется, когда от приложения требуется открыть список файлов.
- Примечание по реализации:
- Обратите внимание, что в macOS уведомления отправляются только если Java-приложение является скомпилированным приложением, и в его
Info.plistприсутствует массивCFBundleDocumentTypes. Обратитесь к Документации разработчика Apple для получения дополнительной информации оInfo.plist. - Параметры:
-
openFileHandler- обработчик - Исключения:
-
SecurityException- если существует менеджер безопасности, и его методSecurityManager.checkRead(java.lang.String)отклоняет доступ для чтения к файлам, или он отклоняет разрешениеRuntimePermission("canProcessApplicationEvents"), или вызывающая нить не разрешено создать подпроцесс -
UnsupportedOperationException- если текущая платформа не поддерживает действиеDesktop.Action.APP_OPEN_FILE - С:
- 9
setPrintFileHandler
public void setPrintFileHandler(PrintFilesHandler printFileHandler)
Устанавливает обработчик, который уведомляется, когда от приложения требуется распечатать список файлов.
- Примечание по реализации:
- Обратите внимание, что в macOS уведомления отправляются только если Java-приложение является скомпилированным приложением, и в его
Info.plistприсутствует массивCFBundleDocumentTypes. Обратитесь к Документации разработчика Apple для получения дополнительной информации оInfo.plist. - Параметры:
-
printFileHandler- обработчик - Исключения:
-
SecurityException- если существует менеджер безопасности, и его методSecurityManager.checkPrintJobAccess()отклоняет разрешение на печать или отклоняет разрешениеRuntimePermission("canProcessApplicationEvents") -
UnsupportedOperationException- если текущая платформа не поддерживает действиеDesktop.Action.APP_PRINT_FILE - С:
- 9
setOpenURIHandler
public void setOpenURIHandler(OpenURIHandler openURIHandler)
Устанавливает обработчик, который уведомляется, когда от приложения требуется открыть URL. Установка обработчика в null приводит к тому, что все запросы OpenURIHandler.openURI(OpenURIEvent) будут помещены в очередь до тех пор, пока не будет установлен другой обработчик.
- Примечание по реализации:
- Обратите внимание, что в macOS уведомления отправляются только если Java-приложение является скомпилированным приложением, и в его
Info.plistприсутствует массивCFBundleDocumentTypes. Обратитесь к Документации разработчика Apple для получения дополнительной информации оInfo.plist. - Параметры:
-
openURIHandler- обработчикRuntimePermission("canProcessApplicationEvents")разрешение, или вызывающей нити не разрешено создать подпроцесс - Исключения:
-
UnsupportedOperationException- если текущая платформа не поддерживает действиеDesktop.Action.APP_OPEN_URI - С:
- 9
setQuitHandler
public void setQuitHandler(QuitHandler quitHandler)
Устанавливает обработчик, который определяет, должно ли приложение завершиться. Обработчик получает одноразовое сообщение QuitResponse, которое может отменить или продолжить завершение. Установка обработчика в null приводит к тому, что все запросы на завершение непосредственно выполняют действие по умолчанию QuitStrategy.
- Параметры:
-
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()
Открывает приложение просмотра справки.
- Примечание по реализации:
- Обратите внимание, что в macOS он открывает приложение просмотра справки, если в приложение добавлен Help Book и зарегистрирован в Info.plist с CFBundleHelpBookFolder
- Исключения:
-
SecurityException- если менеджер безопасности существует и отклоняет разрешениеRuntimePermission("canProcessApplicationEvents"), или отклоняет разрешениеAWTPermission("showWindowWithoutWarningBanner"), или вызывающей нити не разрешено создать подпроцесс -
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)запрещает чтение файла или его родительской папки, или он запрещает разрешениеAWTPermission("showWindowWithoutWarningBanner"), или вызывающей потоку не разрешено создавать дочерний процесс -
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
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/Desktop.html