Module  java.desktop
软件包  javax.print

Class ServiceUI



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

    对话框遵循用作用户的继续/取消选项的标准模式,并允许用户选择要使用的打印服务,并指定诸如纸张大小和份数等选项。

    这些对话框旨在通过这些打印服务的公共API来处理可插拔打印服务。

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

    • 构造方法详细信息

      • ServiceUI

        public ServiceUI​()
    • 方法详细信息

      • printDialog

        public static PrintService printDialog​(GraphicsConfiguration gc,
                                               int x,
                                               int y,
                                               PrintService[] services,
                                               PrintService defaultService,
                                               DocFlavor flavor,
                                               PrintRequestAttributeSet attributes)
                                        throws HeadlessException
        向用户呈现一个对话框,用于选择打印服务(打印机)。 它显示在应用程序指定的位置,并且是模态的。 如果规范无效或使对话框不可见,将显示在由实现确定的位置。 对话框阻止其调用线程,并且是应用程序模态。

        该对话框可能包括一个选项卡面板,具有自定义UI,当PrintService被浏览时,它可以从PrintService的ServiceUIFactory中获取。 该对话框将尝试首先找到一个MAIN_UIROLE作为JComponent,然后作为Panel。 如果没有ServiceUIFactory或没有匹配的角色,则自定义选项卡将为空或不可见。

        如果用户确定对话框,对话框返回用户选择的打印服务,如果用户取消对话框,则该对话框返回null。

        应用程序必须传递一组打印服务才能浏览。 数组必须是非空值,非空值。 通常,应用程序将仅传递能够打印特定文档风格的PrintServices。

        应用程序可能会传入PrintService以便初始显示。 必须在可浏览服务数组中包含非空参数。 如果此参数为空,则实现选择一个服务。

        应用程序可以可选地传递要打印的风味。 如果这是为用户提供的非空选项可以针对服务支持的那些更好地验证。 应用程序必须传递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 - 可浏览,必须为非空。
        defaultService - 显示初始PrintService。
        flavor - 要打印的味道,或无效。
        attributes - 输入是初始应用程序提供的首选项。 这不能为空,但可能为空。 在输出时,属性反映用户所做的更改。
        结果
        用户选择的打印服务,如果用户取消了对话框,则为null。
        异常
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true。
        IllegalArgumentException - if services is null or empty, or attributes is null, or the initial PrintService is not in the list of browsable services.