模块 java.desktop

类 ServiceUI

java.lang.Object
javax.print.ServiceUI

public class ServiceUI extends Object
此类是 UI 便利方法的集合,它提供图形用户对话框,用于浏览通过 Java Print Service API 查找的打印服务。

这些对话框遵循标准模式,作为用户的继续/取消选项,以及允许用户选择要使用的打印服务并指定选项,例如纸张尺寸和份数。

这些对话框旨在通过这些打印服务的公共 API 与可插入打印服务一起使用。

如果打印服务提供任何供应商扩展,用户可以通过供应商提供的选项卡面板 Component 访问这些扩展。鼓励这样的供应商扩展使用 Swing!并支持其可访问性 API。供应商扩展应将设置作为 AttributeSet 的一部分返回。想要保留用户设置的应用程序应该使用这些设置来指定打印作业。请注意,此类未被 Java Print Service 的任何其他部分引用,并且可能不会包含在不能依赖于 AWT 包的存在的配置文件中。

  • 构造方法详细信息

    • 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 时从 PrintServiceServiceUIFactory 延迟获取的自定义 UI。该对话框将首先尝试将 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 - 如果服务为 null 或为空,或者属性为 null,或者初始 PrintService 不在可浏览服务列表中