对话框遵循标准模式,作为用户的继续/取消选项,同时允许用户选择要使用的打印服务并指定选项,如纸张大小和份数。
这些对话框旨在与可插拔打印服务一起使用,通过这些打印服务的公共API。
如果打印服务提供任何供应商扩展,用户可以通过供应商提供的选项卡面板Component
访问这些扩展。鼓励这样的供应商扩展使用Swing!并支持其可访问性API。供应商扩展应将设置作为AttributeSet
的一部分返回。希望保留用户设置的应用程序应使用这些设置来指定打印作业。请注意,此类不被Java打印服务的任何其他部分引用,并且可能不包含在不能依赖AWT包存在的配置文件中。
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic PrintService
printDialog
(GraphicsConfiguration gc, int x, int y, PrintService[] services, PrintService defaultService, DocFlavor flavor, PrintRequestAttributeSet attributes) 为用户提供一个选择打印服务(打印机)的对话框。
-
Constructor Details
-
ServiceUI
public ServiceUI()构造一个ServiceUI
。
-
-
Method Details
-
printDialog
public static PrintService printDialog(GraphicsConfiguration gc, int x, int y, PrintService[] services, PrintService defaultService, DocFlavor flavor, PrintRequestAttributeSet attributes) throws HeadlessException 为用户提供一个选择打印服务(打印机)的对话框。它显示在应用程序指定的位置,并且是模态的。如果规范无效或使对话框不可见,则将在由实现确定的位置显示。对话框会阻塞其调用线程,并且是应用程序模态的。对话框可能包括一个选项卡面板,该面板从
PrintService
的ServiceUIFactory
中延迟获取自定义UI。当浏览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) { ... 打印 ... } }
- 参数:
-
gc
- 用于选择屏幕,null
表示主要或默认屏幕 -
x
- 对话框的位置,包括相对于gc
原点的屏幕坐标中的边框 -
y
- 对话框的位置,包括相对于gc
原点的屏幕坐标中的边框 -
services
- 要浏览的服务,必须是non-null
-
defaultService
- 要显示的初始PrintService
-
flavor
- 要打印的文档类型,或null
-
attributes
- 在输入时是初始应用程序提供的首选项。这不能是null
,但可以为空。在输出时,属性反映用户所做的更改。 - 返回:
-
用户选择的打印服务,如果用户取消对话框,则返回
null
- 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()
返回true
-
IllegalArgumentException
- 如果服务为null
或为空,或属性为null
,或初始PrintService
不在可浏览服务列表中
-