Класс ServiceUI
- java.lang.Object
- javax.print.ServiceUI
public class ServiceUI extends Object
Этот класс представляет собой набор удобных методов пользовательского интерфейса, которые обеспечивают графический диалоговый интерфейс для просмотра служб печати, найденных через API Java Print Service.
Диалоговые окна следуют стандартному шаблону, предлагая пользователю варианты «Продолжить/Отмена», а также позволяя выбрать службу печати и указать такие параметры, как размер бумаги и количество копий.
Диалоговые окна разработаны для работы со вставляемыми службами печати через публичные API этих служб.
Если служба печати предоставляет расширения от поставщика, эти расширения могут быть доступны пользователю через панель вкладок, предоставляемую поставщиком Component. Такое расширение поставщика рекомендуется реализовывать с использованием Swing! и поддерживать его API доступности. Расширения поставщика должны возвращать настройки в качестве части AttributeSet. Приложения, которые хотят сохранить настройки пользователя, должны использовать эти настройки для указания задания печати. Обратите внимание, что этот класс не используется никакой другой частью Java Print Service и может не быть включён в профили, которые не могут зависеть от наличия пакетов AWT.
Конструкторы
| Конструктор | Описание |
|---|---|
ServiceUI() |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
static PrintService | printDialog(GraphicsConfiguration gc,
int x,
int y,
PrintService[] services,
PrintService defaultService,
DocFlavor flavor,
PrintRequestAttributeSet attributes) | Отображает диалоговое окно для пользователя, позволяющее выбрать службу печати (принтер). |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitКонструкторы
ServiceUI
public ServiceUI()
Методы
printDialog
public static PrintService printDialog(GraphicsConfiguration gc,
int x,
int y,
PrintService[] services,
PrintService defaultService,
DocFlavor flavor,
PrintRequestAttributeSet attributes)
throws HeadlessExceptionОтображает диалоговое окно для пользователя, позволяющее выбрать службу печати (принтер). Оно отображается в указанном приложением месте и является модальным. Если спецификация некорректна или сделает диалоговое окно невидимым, оно будет отображено в месте, определяемом реализацией. Диалоговое окно блокирует вызывающую его нить и является модальным для приложения.
Диалоговое окно может включать панель вкладок с настраиваемым пользовательским интерфейсом, получаемым в режиме запроса из PrintService's ServiceUIFactory при просмотре PrintService. Диалоговое окно попытается найти MAIN_UIROLE сначала как JComponent, а затем как Panel. Если ServiceUIFactory отсутствует или нет соответствующей роли, настраиваемая вкладка будет пустой или невидимой.
Диалоговое окно возвращает выбранную пользователем службу печати, если пользователь нажимает «ОК», и null если пользователь нажимает «Отмена».
Приложение должно передавать массив служб печати для просмотра. Массив должен быть non-null и непустым. Обычно приложение передаёт только службы, способные печатать определённый формат документа.
Приложение может передать PrintService для начального отображения. Параметр non-null должен быть включён в массив просматриваемых служб. Если этот параметр null, сервис выбирается реализацией.
Приложение может необязательно передать формат для печати. Если это non-null, представленные пользователю варианты могут быть лучше проверены на соответствие поддерживаемым службами. Приложение должно передать PrintRequestAttributeSet для возврата выбранных пользователем параметров. При вызове PrintRequestAttributeSet может быть пустым или содержать параметры, указанные приложением.
Они используются для установки начальных настроек для первоначально отображаемой службы печати. Значения, которые не поддерживаются службой печати, игнорируются. При просмотре пользователем служб печати атрибуты и значения копируются в новое отображение. Если пользователь просматривает службу печати, которая не поддерживает определённый атрибут-значение, в качестве нового значения для копирования используется значение по умолчанию для этой службы.
Если пользователь отменяет диалоговое окно, возвращаемые атрибуты не будут отражать изменения, внесённые пользователем.
Типичный базовый пример использования этого метода может быть:
PrintService[] services = PrintServiceLookup.lookupPrintServices(
DocFlavor.INPUT_STREAM.JPEG, null);
PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet();
if (services.length > 0) {
PrintService service = ServiceUI.printDialog(null, 50, 50,
services, services[0],
null,
attributes);
if (service != null) {
... print ...
}
}
- Параметры:
-
gc- используется для выбора экрана,nullозначает основной или по умолчанию экран -
x- положение диалогового окна, включая рамку, в координатах экрана относительно началаgc -
y- положение диалогового окна, включая рамку, в координатах экрана относительно началаgc -
services- для просмотра, должен бытьnon-null -
defaultService- начальнаяPrintServiceдля отображения -
flavor- формат для печати, илиnull -
attributes- на входе, начальные настройки, предоставленные приложением. Это не может бытьnull, но может быть пустым. На выходе атрибуты отражают изменения, внесённые пользователем. - Возвращает:
- выбранная пользователем служба печати или
nullесли пользователь отменил диалоговое окно - Использует:
-
HeadlessException- еслиGraphicsEnvironment.isHeadless()возвращаетtrue -
IllegalArgumentException- если servicesnullили пустой, или attributesnull, или начальнаяPrintServiceне входит в список просматриваемых служб
© 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/javax/print/ServiceUI.html