モジュール java.desktop
パッケージ java.awt

クラスGraphicsEnvironment


  • public abstract class GraphicsEnvironment
    extends Object
    GraphicsEnvironmentクラスは、特定のプラットフォーム上のJava(tm)アプリケーションで使用できるGraphicsDeviceオブジェクトとFontオブジェクトのコレクションを記述します。 このGraphicsEnvironmentのリソースは、ローカル・マシン上か、リモート・マシン上にあります。 GraphicsDeviceオブジェクトは、画面、プリンタ、またはイメージ・バッファの場合があり、Graphics2D描画メソッドのデスティネーションです。 GraphicsDeviceは、それに関連したいくつかのGraphicsConfigurationオブジェクトを持ちます。 これらのオブジェクトは、GraphicsDeviceを使用できるさまざまな構成を指定します。
    関連項目:
    GraphicsDevice, GraphicsConfiguration
    • コンストラクタの詳細

      • GraphicsEnvironment

        protected GraphicsEnvironment()
        インスタンスを直接生成できない抽象クラスです。 インスタンスは、適切なファクトリまたはクエリー・メソッドから取得する必要があります。
    • メソッドの詳細

      • getLocalGraphicsEnvironment

        public static GraphicsEnvironment getLocalGraphicsEnvironment()
        ローカルのGraphicsEnvironmentを返します。
        戻り値:
        ローカルのGraphicsEnvironment
      • isHeadless

        public static boolean isHeadless()
        ディスプレイ、キーボード、およびマウスがこの環境でサポートされるかどうかを判定します。 このメソッドがtrueを返す場合、HeadlessExceptionがディスプレイ、キーボード、またはマウスに依存するToolkitおよびGraphicsEnvironmentの領域からスローされます。
        戻り値:
        この環境がディスプレイ、キーボード、およびマウスをサポートできない場合はtrue、そうでない場合はfalse
        導入されたバージョン:
        1.4
        関連項目:
        HeadlessException
      • isHeadlessInstance

        public boolean isHeadlessInstance()
        ディスプレイ、キーボード、およびマウスがこのグラフィックス環境でサポートされるかどうかを返します。 このメソッドがtrueを返す場合、HeadlessExceptionがディスプレイ、キーボード、またはマウスに依存するグラフィックス環境の領域からスローされます。
        戻り値:
        ディスプレイ、キーボード、およびマウスがこの環境でサポートされる場合はtrue、そうでない場合はfalse
        導入されたバージョン:
        1.4
        関連項目:
        HeadlessException, isHeadless()
      • getScreenDevices

        public abstract GraphicsDevice[] getScreenDevices()
                                                   throws HeadlessException
        すべての画面GraphicsDeviceオブジェクトの配列を返します。
        戻り値:
        画面デバイスを表すすべてのGraphicsDeviceオブジェクトを格納する配列
        例外:
        HeadlessException - isHeadless()がtrueを返した場合
        関連項目:
        isHeadless()
      • getDefaultScreenDevice

        public abstract GraphicsDevice getDefaultScreenDevice()
                                                       throws HeadlessException
        デフォルト画面GraphicsDeviceを返します。
        戻り値:
        デフォルトの画面デバイスを表すGraphicsDevice
        例外:
        HeadlessException - isHeadless()がtrueを返した場合
        関連項目:
        isHeadless()
      • createGraphics

        public abstract Graphics2D createGraphics​(BufferedImage img)
        指定されたBufferedImageにレンダリングするためのGraphics2Dオブジェクトを返します。
        パラメータ:
        img - 指定されたBufferedImage
        戻り値:
        指定されたBufferedImageに描画するために使用されるGraphics2D
        例外:
        NullPointerException - imgがnullの場合
      • getAllFonts

        public abstract Font[] getAllFonts()
        このGraphicsEnvironmentで使用可能なすべてのフォントの1ポイントのサイズのインスタンスを含む配列を返します。 ユーザーに特定のフォントを選択させる場合に、よく使用されます。 アプリケーションは選択済みインスタンスにderiveFontメソッドを呼び出して、フォントのサイズ変更と、各種フォント属性の設定を行うことができます。

        このメソッドにより、アプリケーションはどのFontインスタンスを使用してテキストを描画するかを、もっとも正確に制御できるようになります。 このGraphicsEnvironmentのフォントが複数のプログラム可能なバリエーションを持つ場合には、そのFontの1つのインスタンスだけが配列で返され、ほかのバリエーションはアプリケーションによって引き出されなければいけません。

        この環境のフォントがマルチプル・マスター・フォントのように複数のプログラム可能なバリエーションを持つ場合には、そのフォントの1つのインスタンスだけがFont配列で返され、 ほかのバリエーションはアプリケーションによって引き出されなければいけません。

        戻り値:
        Fontオブジェクトの配列
        導入されたバージョン:
        1.2
        関連項目:
        getAvailableFontFamilyNames(), Font, Font.deriveFont(int, float), Font.getFontName()
      • getAvailableFontFamilyNames

        public abstract String[] getAvailableFontFamilyNames()
        Locale.getDefault()によって返されたデフォルト・ロケール向けにローカライズされた、このGraphicsEnvironment内のすべてのフォント・ファミリの名前を含む配列を返します。

        一般的な使い方では、ユーザーが特定のファミリ名を選択できるようにします。 アプリケーションでフォントの作成時に、BoldやItalicなどのスタイルとともにこの名前を指定できるため、フォント・システムに、同じフォント・ファミリの複数のフォントの中でもっとも適切なものを選択する柔軟性を与えます。

        戻り値:
        デフォルト・ロケールにローカライズされたフォント・ファミリ名を格納するStringの配列、またはこのロケールの名前が存在しない場合は適切な代替名。
        導入されたバージョン:
        1.2
        関連項目:
        getAllFonts(), Font, Font.getFamily()
      • getAvailableFontFamilyNames

        public abstract String[] getAvailableFontFamilyNames​(Locale l)
        指定されたロケール向けにローカライズされた、このGraphicsEnvironment内のすべてのフォント・ファミリの名前を含む配列を返します。

        一般的な使い方では、ユーザーが特定のファミリ名を選択できるようにします。 アプリケーションでフォントの作成時に、BoldやItalicなどのスタイルとともにこの名前を指定できるため、フォント・システムに、同じフォント・ファミリの複数のフォントの中でもっとも適切なものを選択する柔軟性を与えます。

        パラメータ:
        l - 特定の地理的、政治的、または文化的領域を表すLocaleオブジェクト。 nullを指定すると、Locale.getDefault()を指定したことになる。
        戻り値:
        指定されたLocaleにローカライズされたフォント・ファミリ名を格納するStringの配列、または指定されたロケールの名前が存在しない場合は適切な代替名。
        導入されたバージョン:
        1.2
        関連項目:
        getAllFonts(), Font, Font.getFamily()
      • registerFont

        public boolean registerFont​(Font font)
        このGraphicsEnvironment作成された Font を登録します。 作成されたフォントは、Font.createFont(int, java.io.InputStream)を呼び出して返されたフォント、またはFont.deriveFont(int, float)を呼び出して作成されたフォントから派生したフォントです。 そのようなフォントは、このメソッドの呼出し後に、名前またはファミリ名で新しいFontを構築するために使用できるほか、このアプリケーションまたはアプレットの実行コンテキスト内でgetAvailableFontFamilyNames()およびgetAllFonts()を呼び出すことで列挙できます。 つまりアプレットは、ほかのアプレットが識別できるような方法ではフォントを登録できません。

        このメソッドがフォントを登録できずにfalseを返す理由は、次のとおりです。

        • フォントが、作成された Fontではありません。
        • フォントが、このGraphicsEnvironment内にすでに存在する作成されていないFontと競合しています。 たとえば名前がシステム・フォントの名前である場合や、Fontクラスのマニュアルに記載された論理フォントの名前である場合です。 システム・フォントとファミリ名が同じ場合にフォントが競合するかどうかは、実装ごとに異なります。

          アプリケーションは、以前作成されたフォントの登録よりも新しく作成されたフォントを優先できます。

        パラメータ:
        font - 登録されるフォント
        戻り値:
        このGraphicsEnvironmentfontが正常に登録された場合はtrue。
        例外:
        NullPointerException - fontがnullである場合
        導入されたバージョン:
        1.6
      • preferLocaleFonts

        public void preferLocaleFonts()
        論理フォントから物理フォントのマッピングでのロケール固有のフォントの設定を指定します。 このメソッドを呼び出すことは、フォントの描画で主要な書記法(デフォルトのエンコーディングおよび初期のデフォルトのロケールによって指示された書記法)を主に使用する必要があることを意味します。 たとえば、主要な書記法が日本語の場合、可能なかぎり日本語を使用して文字を描画する必要があり、ほかのフォントは日本語のフォントがグリフを持たない文字にのみ使用する必要があります。

        このメソッドの呼出しによって実行されるフォントの描画動作での実際の変更は、実装によって異なります。まったく影響がない場合もあれば、要求された動作がデフォルトの動作に一致している場合もあります。 この動作は、軽量コンポーネントのフォントの描画とピア・コンポーネントのフォントの描画で異なることがあります。 このメソッドを呼び出すと、別のフォントが要求されるため、クライアントは別のメトリックスを予想する必要があり、ウィンドウのサイズとレイアウトの再計算が必要になる場合もあります。 そのため、このメソッドはユーザー・インタフェースの初期化前に呼び出す必要があります。

        導入されたバージョン:
        1.5
      • preferProportionalFonts

        public void preferProportionalFonts()
        論理フォントから物理フォントへのマッピングで、プロポーショナル・フォント以外のフォント(dual-spaced CJKフォントなど)よりもプロポーショナル・フォントを優先する設定を指定します。 デフォルトのマッピングに、プロポーショナルとプロポーショナル以外の形式が存在するフォントが含まれる場合、このメソッドを呼び出すことは、マッピングでプロポーショナル形式を使用する必要があることを指示します。

        このメソッドの呼出しによって実行されるフォントの描画動作での実際の変更は、実装によって異なります。まったく影響がない場合もあります。 この動作は、軽量コンポーネントのフォントの描画とピア・コンポーネントのフォントの描画で異なることがあります。 このメソッドを呼び出すと、別のフォントが要求されるため、クライアントは別のメトリックスを予想する必要があり、ウィンドウのサイズとレイアウトの再計算が必要になる場合もあります。 そのため、このメソッドはユーザー・インタフェースの初期化前に呼び出す必要があります。

        導入されたバージョン:
        1.5
      • getCenterPoint

        public Point getCenterPoint()
                             throws HeadlessException
        Windowを中央に配置するPointを返します。 中央に配置されたWindowがgetMaximumWindowBounds()を使用して表示可能な領域に収まるかどうかをチェックすることをお薦めします。
        戻り値:
        Windowを中央に配置するポイント
        例外:
        HeadlessException - isHeadless()がtrueを返した場合
        導入されたバージョン:
        1.4
        関連項目:
        getMaximumWindowBounds()
      • getMaximumWindowBounds

        public Rectangle getMaximumWindowBounds()
                                         throws HeadlessException
        中央に配置されたWindowの最大の境界を返します。 これらの境界はタスク・バーやメニュー・バーなどのネイティブのウィンドウ処理システムのオブジェクトを処理します。 返された境界は1つの例外を持つ単一のディスプレイに常駐します。すべてのディスプレイを通してWindowが中央に配置されるマルチスクリーン・システムの場合、このメソッドは全体のディスプレイ領域の境界を返します。

        単一のディスプレイの使用できる境界を取得するには、GraphicsConfiguration.getBounds()およびToolkit.getScreenInsets()を使用します。

        戻り値:
        中央に配置されたWindowの最大の境界
        例外:
        HeadlessException - isHeadless()がtrueを返した場合
        導入されたバージョン:
        1.4
        関連項目:
        getCenterPoint(), GraphicsConfiguration.getBounds(), Toolkit.getScreenInsets(java.awt.GraphicsConfiguration)