Класс Desktop
public class Desktop extends Object
Desktop позволяет взаимодействовать с различными возможностями рабочего стола. Поддерживаемые операции включают:
- запуск пользовательского браузера для отображения указанного URI;
- запуск пользовательского почтового клиента с необязательным
mailtoURI; - запуск зарегистрированного приложения для открытия, редактирования или печати указанного файла.
Этот класс предоставляет методы, соответствующие этим операциям. Методы ищут связанное приложение, зарегистрированное в текущей платформе, и запускают его для обработки URI или файла. Если связанное приложение не найдено или не может быть запущено, генерируется исключение. Подробный список поддерживаемых операций и возможностей см. в Desktop.Action.
Приложение регистрируется для URI или типа файла. Механизм регистрации, доступа и запуска связанного приложения зависит от платформы.
Каждая операция представляет собой тип действия, представленный классом Desktop.Action.
Примечание: когда вызывается какая-либо операция и связанное приложение выполняется, оно будет выполнено на той же системе, на которой запущено приложение Java.
- С тех пор как:
- 1.6
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static enum |
Desktop.Action |
Представляет тип действия. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addAppEventListener |
Добавляет подтипы SystemEventListener для прослушивания уведомлений с родной системы. |
void |
browse |
Запускает по умолчанию браузер для отображения URI. |
void |
browseFileDirectory |
Открывает папку, содержащую file и выбирает её в стандартном файловом менеджере системы. |
void |
disableSuddenTermination() |
Запрещает внезапное завершение этого приложения. |
void |
edit |
Запускает связанное приложение-редактор и открывает файл для редактирования. |
void |
enableSuddenTermination() |
Включает возможность внезапного завершения этого приложения. |
static Desktop |
getDesktop() |
Возвращает Desktop экземпляр текущего контекста рабочего стола. |
static boolean |
isDesktopSupported() |
Проверяет, поддерживается ли этот класс в текущей платформе. |
boolean |
isSupported |
Проверяет, поддерживается ли действие в текущей платформе. |
void |
mail() |
Запускает окно составления письма пользовательского почтового клиента по умолчанию. |
void |
mail |
Запускает окно составления письма пользовательского почтового клиента по умолчанию, заполняя поля сообщения, указанные в
mailto: URI. |
boolean |
moveToTrash |
Перемещает указанный файл в корзину. |
void |
open |
Запускает связанное приложение для открытия файла. |
void |
openHelpViewer() |
Открывает родное приложение-просмотрщик справки. |
void |
print |
Печатает файл с помощью родной функции печати рабочего стола, используя команду печати связанного приложения. |
void |
removeAppEventListener |
Удаляет подтипы SystemEventListener для прослушивания уведомлений с родной системы. |
void |
requestForeground |
Запрашивает перемещение этого приложения на передний план. |
void |
setAboutHandler |
Устанавливает обработчик для отображения пользовательского окна "О программе" для вашего приложения. |
void |
setDefaultMenuBar |
Устанавливает по умолчанию строку меню для использования, когда нет активных фреймов. |
void |
setOpenFileHandler |
Устанавливает обработчик, который уведомляется, когда приложение должно открыть список файлов. |
void |
setOpenURIHandler |
Устанавливает обработчик, который уведомляется, когда приложение должно открыть URL. |
void |
setPreferencesHandler |
Устанавливает обработчик для отображения пользовательского окна "Настройки" для вашего приложения. |
void |
setPrintFileHandler |
Устанавливает обработчик, который уведомляется, когда приложение должно распечатать список файлов. |
void |
setQuitHandler |
Устанавливает обработчик, который определяет, должно ли приложение завершиться. |
void |
setQuitStrategy |
Устанавливает стратегию по умолчанию для завершения этого приложения. |
Подробное описание методов
getDesktop
public static Desktop getDesktop()
Desktop контекста текущего рабочего стола. На некоторых платформах API рабочего стола может быть недоступен; используйте метод isDesktopSupported(), чтобы определить, поддерживается ли текущий рабочий стол.- Возвращает:
- экземпляр Desktop
- Исключения:
-
HeadlessException- еслиGraphicsEnvironment.isHeadless()возвращаетtrue -
UnsupportedOperationException- если этот класс не поддерживается на текущей платформе - См. также:
isDesktopSupported
public static boolean isDesktopSupported()
getDesktop(), чтобы получить экземпляр.- Возвращает:
-
trueесли этот класс поддерживается на текущей платформе;falseв противном случае - См. также:
isSupported
public boolean isSupported(Desktop.Action action)
Даже если платформа поддерживает действие, файл или URI может не иметь зарегистрированного приложения для этого действия. Например, большинство платформ поддерживают действие Desktop.Action.OPEN. Но для определенного файла может не быть зарегистрированного приложения для его открытия. В этом случае isSupported(Action) может вернуть true, но соответствующий метод действия выбросит исключение IOException.
- Параметры:
-
action- указанноеDesktop.Action - Возвращает:
-
trueесли указанное действие поддерживается на текущей платформе;falseв противном случае - См. также:
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"), или вызывающая нить не имеет разрешения на создание дочернего процесса - См. также:
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"), или вызывающая нить не имеет разрешения на создание дочернего процесса - См. также:
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"), или вызывающая нить не имеет разрешения на создание дочернего процесса - См. также:
public void mail() throws IOException
- Исключения:
-
UnsupportedOperationException- если текущая платформа не поддерживает действиеDesktop.Action.MAIL -
IOException- если почтовый клиент по умолчанию не найден или не удалось запустить -
SecurityException- если менеджер безопасности существует и отклоняет разрешениеAWTPermission("showWindowWithoutWarningBanner"), или вызывающая нить не имеет разрешения на создание дочернего процесса - См. также:
public void mail(URI mailtoURI) throws IOException
mailto: URI. mailto: URI могут указывать поля сообщения, включая "to", "cc", "subject", "body" и т. д. См. Схема URI mailto (RFC 2368) для подробной информации о спецификации URI mailto:.
- Параметры:
-
mailtoURI- указанныйmailto:URI - Исключения:
-
NullPointerException- если указанный URI являетсяnull -
IllegalArgumentException- если схема URI не"mailto" -
UnsupportedOperationException- если текущая платформа не поддерживает действиеDesktop.Action.MAIL -
IOException- если почтовый клиент по умолчанию не найден или не удалось запустить -
SecurityException- если менеджер безопасности существует и отклоняет разрешениеAWTPermission("showWindowWithoutWarningBanner"), или вызывающая нить не имеет разрешения на создание дочернего процесса - См. также:
addAppEventListener
public void addAppEventListener(SystemEventListener listener)
SystemEventListener для прослушивания уведомлений из родной системы. Не имеет эффекта, если подтип SystemEventListener не поддерживается на текущей платформе.- Параметры:
-
listener- прослушиватель - Исключения:
-
SecurityException- если менеджер безопасности существует и отклоняет разрешениеRuntimePermission("canProcessApplicationEvents") - С момента:
- 9
- См. также:
removeAppEventListener
public void removeAppEventListener(SystemEventListener listener)
SystemEventListener, чтобы прекратить прослушивание уведомлений от системного ядра. Не оказывает никакого эффекта, если подтип SystemEventListener не поддерживается текущей платформой.- Parameters:
-
listener- listener - Throws:
-
SecurityException- если существует менеджер безопасности и он отклоняетRuntimePermission("canProcessApplicationEvents")разрешение - Since:
- 9
- See Also:
setAboutHandler
public void setAboutHandler(AboutHandler aboutHandler)
Установка AboutHandler в null восстанавливает поведение по умолчанию.
- Parameters:
-
aboutHandler- обработчик, реагирующий на сообщениеAboutHandler.handleAbout(AboutEvent) - Throws:
-
SecurityException- если существует менеджер безопасности и он отклоняетRuntimePermission("canProcessApplicationEvents")разрешение -
UnsupportedOperationException- если текущая платформа не поддерживает действиеDesktop.Action.APP_ABOUT - Since:
- 9
setPreferencesHandler
public void setPreferencesHandler(PreferencesHandler preferencesHandler)
Установка PreferencesHandler в null восстанавливает поведение по умолчанию
- Parameters:
-
preferencesHandler- обработчик, реагирующий на сообщениеPreferencesHandler.handlePreferences(PreferencesEvent) - Throws:
-
SecurityException- если существует менеджер безопасности и он отклоняетRuntimePermission("canProcessApplicationEvents")разрешение -
UnsupportedOperationException- если текущая платформа не поддерживает действиеDesktop.Action.APP_PREFERENCES - Since:
- 9
setOpenFileHandler
public void setOpenFileHandler(OpenFilesHandler openFileHandler)
- Implementation Note:
- Обратите внимание, что для macOS уведомления отправляются только если Java-приложение является приложением в пакете, с массивом
CFBundleDocumentTypesвInfo.plist. Для получения дополнительной информации обInfo.plistобратитесь к документации разработчика Apple. - Parameters:
-
openFileHandler- handler - Throws:
-
SecurityException- если существует менеджер безопасности и его методSecurityManager.checkRead(java.lang.String)отклоняет доступ для чтения к файлам, или он отклоняетRuntimePermission("canProcessApplicationEvents")разрешение, или вызывающая поток не разрешено создавать дочерний процесс -
UnsupportedOperationException- если текущая платформа не поддерживает действиеDesktop.Action.APP_OPEN_FILE - Since:
- 9
setPrintFileHandler
public void setPrintFileHandler(PrintFilesHandler printFileHandler)
- Implementation Note:
- Обратите внимание, что для macOS уведомления отправляются только если Java-приложение является приложением в пакете, с массивом
CFBundleDocumentTypesвInfo.plist. Для получения дополнительной информации обInfo.plistобратитесь к документации разработчика Apple. - Parameters:
-
printFileHandler- handler - Throws:
-
SecurityException- если существует менеджер безопасности и его методSecurityManager.checkPrintJobAccess()отклоняет разрешение на печать или отклоняетRuntimePermission("canProcessApplicationEvents")разрешение -
UnsupportedOperationException- если текущая платформа не поддерживает действиеDesktop.Action.APP_PRINT_FILE - Since:
- 9
setOpenURIHandler
public void setOpenURIHandler(OpenURIHandler openURIHandler)
null приводит к тому, что все запросы OpenURIHandler.openURI(OpenURIEvent) будут помещены в очередь до тех пор, пока не будет установлен другой обработчик.- Implementation Note:
- Обратите внимание, что для macOS уведомления отправляются только если Java-приложение является приложением в пакете, с массивом
CFBundleDocumentTypesвInfo.plist. Для получения дополнительной информации обInfo.plistобратитесь к документации разработчика Apple. - Parameters:
-
openURIHandler- handlerRuntimePermission("canProcessApplicationEvents")разрешение, или вызывающий поток не разрешено создавать дочерний процесс - Throws:
-
UnsupportedOperationException- если текущая платформа не поддерживает действиеDesktop.Action.APP_OPEN_URI - Since:
- 9
setQuitHandler
public void setQuitHandler(QuitHandler quitHandler)
QuitResponse, которое может отменить или продолжить завершение. Установка обработчика в null приводит к тому, что все запросы на выход будут непосредственно выполнять стандартную процедуру QuitStrategy.- Parameters:
-
quitHandler- обработчик, вызываемый, когда приложение запрошено завершить работу - Throws:
-
SecurityException- если существует менеджер безопасности и он не позволит вызывающему элементу вызватьSystem.exitили он отклонитRuntimePermission("canProcessApplicationEvents")разрешение -
UnsupportedOperationException- если текущая платформа не поддерживает действиеDesktop.Action.APP_QUIT_HANDLER - Since:
- 9
setQuitStrategy
public void setQuitStrategy(QuitStrategy strategy)
- Parameters:
-
strategy- способ завершения работы этого приложения - Throws:
-
SecurityException- если существует менеджер безопасности и он не позволит вызывающему элементу вызватьSystem.exitили он отклонитRuntimePermission("canProcessApplicationEvents")разрешение -
UnsupportedOperationException- если текущая платформа не поддерживает действиеDesktop.Action.APP_QUIT_STRATEGY - Since:
- 9
- See Also:
enableSuddenTermination
public void enableSuddenTermination()
- Throws:
-
SecurityException- если существует менеджер безопасности и он не позволит вызывающему элементу вызватьSystem.exitили он отклонитRuntimePermission("canProcessApplicationEvents")разрешение -
UnsupportedOperationException- если текущая платформа не поддерживает действиеDesktop.Action.APP_SUDDEN_TERMINATION - Since:
- 9
- See Also:
disableSuddenTermination
public void disableSuddenTermination()
- Throws:
-
SecurityException- если существует менеджер безопасности и он не позволит вызывающему элементу вызватьSystem.exitили он отклонитRuntimePermission("canProcessApplicationEvents")разрешение -
UnsupportedOperationException- если текущая платформа не поддерживает действиеDesktop.Action.APP_SUDDEN_TERMINATION - Since:
- 9
- See Also:
requestForeground
public void requestForeground(boolean allWindows)
- Parameters:
-
allWindows- если все окна этого приложения должны быть выведены на передний план, или только самое верхнее - Throws:
-
SecurityException- если существует менеджер безопасности и он отклоняетRuntimePermission("canProcessApplicationEvents")разрешение. -
UnsupportedOperationException- если текущая платформа не поддерживает действиеDesktop.Action.APP_REQUEST_FOREGROUND - Since:
- 9
ОткрытьПросмотрПомощи
public void openHelpViewer()
- Примечание к реализации:
- Обратите внимание, что для Mac OS приложение просмотра встроенной справки открывается, если руководство по справке добавлено в пакет приложения и зарегистрировано в Info.plist с CFBundleHelpBookFolder
- Исключения:
-
SecurityException- если существует менеджер безопасности и он запрещает доступ кRuntimePermission("canProcessApplicationEvents")разрешению, или он запрещает доступ кAWTPermission("showWindowWithoutWarningBanner")разрешению, или вызывающей нити запрещено создавать дочерний процесс -
UnsupportedOperationException- если текущая платформа не поддерживает действиеDesktop.Action.APP_HELP_VIEWER - С:
- 9
УстановитьСтандартнуюПанельМеню
public void setDefaultMenuBar(JMenuBar menuBar)
- Параметры:
-
menuBar- для использования, когда другие фреймы не активны - Исключения:
-
SecurityException- если существует менеджер безопасности и он запрещает доступ кRuntimePermission("canProcessApplicationEvents")разрешению. -
UnsupportedOperationException- если текущая платформа не поддерживает действиеDesktop.Action.APP_MENU_BAR - С:
- 9
ОткрытьПапкуФайла
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
ПереместитьВКорзину
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, 2023, 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/21/docs/api/java.desktop/java/awt/Desktop.html