Класс ServiceUI

public class ServiceUI
extends Object

Этот класс представляет собой набор удобных методов пользовательского интерфейса, которые обеспечивают графический диалоговый интерфейс для просмотра служб печати, найденных через API Java Print Service.

Диалоговые окна следуют стандартному шаблону, предлагая пользователю варианты «Продолжить/Отмена», а также позволяя выбрать службу печати и указать такие параметры, как размер бумаги и количество копий.

Диалоговые окна разработаны для работы со вставляемыми службами печати через публичные API этих служб.

Если служба печати предоставляет расширения от поставщика, эти расширения могут быть доступны пользователю через панель вкладок, предоставляемую поставщиком Component. Такое расширение поставщика рекомендуется реализовывать с использованием Swing! и поддерживать его API доступности. Расширения поставщика должны возвращать настройки в качестве части AttributeSet. Приложения, которые хотят сохранить настройки пользователя, должны использовать эти настройки для указания задания печати. Обратите внимание, что этот класс не используется никакой другой частью Java Print Service и может не быть включён в профили, которые не могут зависеть от наличия пакетов AWT.

Конструкторы

КонструкторОписание
ServiceUI()

Методы

Модификатор и типМетодОписание
static PrintServiceprintDialog​(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 - если services null или пустой, или attributes null, или начальная 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

Spec-Zone .ru
спецификации, руководства, описания, API