logo
Хабибуллин

Использование системных приложений

В большинстве операционных систем пользователь устанавливает для себя браузер по умолчанию, который открывается, когда пользователь выбирает файл с расширением html. Файлы с другими расширениями тоже часто связываются с приложениями, обрабатывающими их. Например, файл с расширением txt часто открывается в текстовом редакторе. Кроме того, пользователь может выбрать для себя почтовый клиент по умолчанию.

Эти возможности использует класс Desktop из пакета java.awt. У него есть методы, позволяющие запустить некоторые приложения пользователя:

browse(URI file) — открывает браузер по умолчанию, загружающий указанный файл

file;

mail() — открывает почтовый клиент по умолчанию;

mail(URI mailto) — открывает почтовый клиент по умолчанию, заполняя поля "To",

"Cc", "Subject", "Body" значениями, взятыми из аргумента mailto;

edit(File file) — открывает текстовый редактор, связанный с указанным файлом file, и загружает в него файл file;

open(File file) — открывает указанный файл file;

print(File file) — печатает указанный файл file на принтере, назначенном этому

файлу.

Связь с приложениями пользователя устанавливается через операционную систему, поэтому экземпляр класса Desktop создается не конструктором, а статическим методом getDesktop(). Эту связь удается установить не во всех системах, поэтому предварительно следует сделать проверку статическим логическим методом isDesktopSupported(). Итак, создание экземпляра класса Desktop выглядит так:

Desktop d = null;

if (Desktop.isDesktopSupported()) d = Desktop.getDesktop();

Вызвать каждое из перечисленных ранее приложений тоже удается не всегда, поэтому перед обращением к какому-либо методу класса Desktop имеет смысл сделать проверку логическим методом

public boolean isSupported(Desktop.Action action);

Аргументом этого метода может служить одна из следующих констант вложенного перечисления Action:

BROWSE — у пользователя есть браузер по умолчанию;

MAIL — у пользователя есть почтовый клиент по умолчанию;