モジュール java.desktop
パッケージ javax.print

クラスServiceUI


  • public class ServiceUI
    extends Object
    このクラスは、Java Print Service APIを介してルックアップされた印刷サービス閲覧用のグラフィカルなユーザー・ダイアログを提供する、利便性の高いUIメソッドのコレクションです。

    ダイアログは標準パターンに準拠し、ユーザーに対して「継続」や「取消し」オプションを提供します。また、ユーザーは、このダイアログを使用して印刷サービスを選択し、用紙サイズやコピー部数などを指定できます。

    ダイアログは、これらの印刷サービスのpublic APIを介して、プラグイン可能な印刷サービスと協調動作するように設計されています。

    印刷サービスがベンダー拡張を提供する場合、ベンダー提供のタブパネル Componentを使用してユーザーがこれらにアクセスできる可能性があります。 このようなベンダー拡張機能では、Swing!の使用およびそのAccessibility APIのサポートが推奨されています。 ベンダー拡張は、AttributeSetの一部として設定を返す必要があります。 ユーザー設定を保存するアプリケーションは、これらの設定を使用して印刷ジョブを指定する必要があります。 このクラスが、Java Print Serviceの他の部分から参照されることはありません。また、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
        印刷サービス(プリンタ)選択用ダイアログをユーザーに提供します。 これは、アプリケーションにより指定された位置に表示される、モーダルなダイアログです。 仕様が無効であるか、仕様によりダイアログが非表示に設定された場合、実装により指定された位置に表示されます。 ダイアログは、呼出しスレッドをブロックし、アプリケーション・モーダルになります。

        ダイアログには、PrintServiceが参照されたときにPrintServiceServiceUIFactoryから遅延取得されたカスタムUIを含むタブ・パネルが含まれる場合があります。 ダイアログでは、最初にMAIN_UIROLEJComponentとして、次にPanelとして検索しようとします。 ServiceUIFactoryがないか、一致するロールがない場合、カスタム・タブは空になるか、表示されません。

        このダイアログでは、ユーザーがOKの場合はユーザーが選択した印刷サービス、ユーザーがダイアログを取り消す場合は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が参照可能なサービスのリストにない場合