Spec-Zone.ru › OpenJDK 25

Класс 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()
Создает ServiceUI.

Краткое описание методов

Модификатор и тип Метод Описание
static PrintService printDialog(GraphicsConfiguration gc, int x, int y, PrintService[] services, PrintService defaultService, DocFlavor flavor, PrintRequestAttributeSet attributes)
Отображает диалоговое окно для выбора службы печати (принтера).

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

ServiceUI

public ServiceUI()
Создает 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 и непустым. Обычно приложение передает только PrintServices, способные печатать документ с определенным форматом данных.

Приложение может передать 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 отсутствует в списке доступных для просмотра служб

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/java.desktop/javax/print/ServiceUI.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API