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

クラスGraphicsDevice

java.lang.Object
java.awt.GraphicsDevice

public abstract class GraphicsDevice
extends Object
GraphicsDeviceクラスは、特定のグラフィックス環境で使用できる可能性のあるグラフィックス・デバイスを記述します。 こうしたデバイスには、スクリーン・デバイスとプリンタ・デバイスがあります。 GraphicsEnvironmentのインスタンスに、多数の画面とプリンタがある場合があります。 各グラフィックス・デバイスは、それに関連した1つ以上のGraphicsConfigurationオブジェクトを持ちます。 これらのオブジェクトは、GraphicsDeviceを使用できるさまざまな構成を指定します。

マルチスクリーン環境では、GraphicsConfigurationオブジェクトを使って複数の画面にコンポーネントを描画できます。 次のコード・サンプルは、GraphicsEnvironmentの各スクリーン・デバイスで、GraphicsConfigurationごとにJFrameオブジェクトを生成する方法を示したものです。


   GraphicsEnvironment ge = GraphicsEnvironment.
   getLocalGraphicsEnvironment();
   GraphicsDevice[] gs = ge.getScreenDevices();
   for (int j = 0; j < gs.length; j++) {
      GraphicsDevice gd = gs[j];
      GraphicsConfiguration[] gc =
      gd.getConfigurations();
      for (int i=0; i < gc.length; i++) {
         JFrame f = new
         JFrame(gs[j].getDefaultConfiguration());
         Canvas c = new Canvas(gc[i]);
         Rectangle gcBounds = gc[i].getBounds();
         int xoffs = gcBounds.x;
         int yoffs = gcBounds.y;
         f.getContentPane().add(c);
         f.setLocation((i*50)+xoffs, (i*60)+yoffs);
         f.show();
      }
   }
 

フル・スクリーン排他モードAPIの詳細は、「Full-Screen Exclusive Mode API Tutorial」を参照してください。

関連項目:
GraphicsEnvironment, GraphicsConfiguration
  • フィールド詳細

  • コンストラクタの詳細

  • メソッドの詳細

    • getType

      public abstract int getType()
      このGraphicsDeviceのタイプを返します。
      戻り値:
      このGraphicsDeviceの型。TYPE_RASTER_SCREEN、TYPE_PRINTER、またはTYPE_IMAGE_BUFFER。
      関連項目:
      TYPE_RASTER_SCREEN, TYPE_PRINTER, TYPE_IMAGE_BUFFER
    • getIDstring

      public abstract String getIDstring()
      このGraphicsDeviceに関連付けられた識別文字列を返します。

      特定のプログラムはGraphicsEnvironmentにある複数のGraphicsDeviceを使用する場合があります。 このメソッドは、ローカルのGraphicsEnvironmentにある特定のGraphicsDeviceを識別するStringを返します。 このStringを設定するpublicメソッドはありませんが、プログラマはこのStringをデバッグ用に使用できます。 Java(TM) Runtime Environmentのベンダーは、このStringの戻り値をフォーマットできます。 このStringの値を解釈する方法を決定するには、Java Runtimeのご購入元に連絡してください。 プログラムからベンダーを確認するには、"java.vendor"でSystemクラスのgetPropertyメソッドを呼び出します。

      戻り値:
      このGraphicsDeviceのIDを表すデフォルトのString
    • getConfigurations

      public abstract GraphicsConfiguration[] getConfigurations()
      このGraphicsDeviceに関連付けられたすべてのGraphicsConfigurationオブジェクトを返します。
      戻り値:
      このGraphicsDeviceに関連付けられているGraphicsConfigurationオブジェクトの配列。
    • getDefaultConfiguration

      public abstract GraphicsConfiguration getDefaultConfiguration()
      このGraphicsDeviceに関連付けられたデフォルトのGraphicsConfigurationを返します。
      戻り値:
      このGraphicsDeviceのデフォルトのGraphicsConfiguration
    • getBestConfiguration

      public GraphicsConfiguration getBestConfiguration​(GraphicsConfigTemplate gct)
      GraphicsConfigTemplateで定義された基準を渡す、考えられる「最適な」構成を返します。
      パラメータ:
      gct - 有効なGraphicsConfigurationを取得するために使用されるGraphicsConfigTemplateオブジェクト
      戻り値:
      指定されたGraphicsConfigTemplateで定義されている基準を渡すことのできるGraphicsConfiguration
      関連項目:
      GraphicsConfigTemplate
    • isFullScreenSupported

      public boolean isFullScreenSupported()
      このGraphicsDeviceがフル・スクリーン排他モードをサポートしている場合はtrueを返します。 SecurityManagerがインストールされている場合は、そのcheckPermissionメソッドがAWTPermission("fullScreenExclusive")で呼び出されます。isFullScreenSupportedは、そのアクセス権が許可されている場合にのみtrueを返します。
      戻り値:
      このグラフィックス・デバイスでフル・スクリーン排他モードが利用可能かどうか
      導入されたバージョン:
      1.4
      関連項目:
      AWTPermission
    • setFullScreenWindow

      public void setFullScreenWindow​(Window w)
      フル・スクリーン・モードに入るか、またはウィンドウ・モードに復帰します。 フル・スクリーン・モードに入ると、排他モードまたはシミュレーション・モードになります。 排他モードは、isFullScreenSupportedtrueを返す場合にのみ利用できます。

      排他モードでは、次のような状態になります。

      • Windowsはフル・スクリーン・ウィンドウをオーバーラップできません。 その他のすべてのアプリケーション・ウィンドウは、常にフル・スクリーン・ウィンドウの下にZ軸順で隠されて表示されます。
      • デバイスのフル・スクリーン・ウィンドウは常に1つだけです。そのため、既存のフル・スクリーン・ウィンドウが存在するときにこのメソッドを呼び出すと、既存のフル・スクリーン・ウィンドウはウィンドウ・モードに復帰します。
      • インプット・メソッド・ウィンドウが無効になります。 Component.enableInputMethods(false)を呼び出して、コンポーネントをインプット・メソッド・フレームワークの非クライアントにすることをお薦めします。

      シミュレーション・フルスクリーン・モードでは、画面の最大限の可視領域に合わせてウィンドウが配置されサイズ変更されます。 ただし、Windowオブジェクトがデスクトップ設定に厳密に対応する方法で配置およびサイズ設定されるように、ネイティブ・ウィンドウ管理システムは要求された幾何学的図形に関連するデータを変更する可能性があります。

      フル・スクリーン・モードに切り替えた際に、フル・スクリーン・ウィンドウとして使用するウィンドウが表示されていない場合、このメソッドはそのウィンドウを表示します。 ウィンドウ・モードに戻っても表示されたままになります。

      フル・スクリーン・モードに切り替えた際に、ウィンドウの半透明性効果はすべてリセットされます。 その形状はnullに設定され、不透明性の値は1.0fに設定され、背景色のアルファは255 (完全に不透明)に設定されます。 ウィンドウ・モードに戻ってもこれらの値は復元されません。

      装飾されたウィンドウがフル・スクリーン・モードでどのように動作するかは指定されておらず、プラットフォームに依存します。 そのため、setUndecoratedメソッドを使用してFrameまたはDialogオブジェクトの装飾をオフにすることをお薦めします。

      フル・スクリーン排他ウィンドウからウィンドウ・モードに復帰すると、setDisplayModeの呼出しによって行われた表示変更は、元の状態に自動的に復元されます。

      パラメータ:
      w - フル・スクリーン・ウィンドウとして使用するウィンドウ。ウィンドウ・モードに復帰する場合はnull 一部のプラットフォームでは、フル・スクリーン・ウィンドウがトップレベル・コンポーネント(つまり、Frame)であることが期待されるため、ここではWindowよりもFrameを使うほうが適切です。
      導入されたバージョン:
      1.4
      関連項目:
      isFullScreenSupported(), getFullScreenWindow(), setDisplayMode(java.awt.DisplayMode), Component.enableInputMethods(boolean), Component.setVisible(boolean), Frame.setUndecorated(boolean), Dialog.setUndecorated(boolean)
    • getFullScreenWindow

      public Window getFullScreenWindow()
      デバイスがフル・スクリーン・モードにある場合に、フル・スクリーン・ウィンドウを表すWindowオブジェクトを返します。
      戻り値:
      フル・スクリーン・ウィンドウ。デバイスがフル・スクリーン・モードでない場合はnull
      導入されたバージョン:
      1.4
      関連項目:
      setFullScreenWindow(Window)
    • isDisplayChangeSupported

      public boolean isDisplayChangeSupported()
      このGraphicsDeviceが低レベル表示変更をサポートしている場合はtrueを返します。 一部のプラットフォームでは、フル・スクリーン排他モードでのみ低レベル表示変更が許可されることがあります。つまり、isFullScreenSupported()trueを返し、setFullScreenWindow(java.awt.Window)を使用してアプリケーションがすでにフル・スクリーン・モードになっている場合です。
      戻り値:
      このグラフィックス・デバイスが低レベル表示変更をサポートするかどうか
      導入されたバージョン:
      1.4
      関連項目:
      isFullScreenSupported(), setDisplayMode(java.awt.DisplayMode), setFullScreenWindow(java.awt.Window)
    • setDisplayMode

      public void setDisplayMode​(DisplayMode dm)
      このグラフィックス・デバイスの表示モードを設定します。 これは、isDisplayChangeSupported()trueを返す場合にのみ許可されます。また、フル・スクリーン排他モードがサポートされている(つまりisFullScreenSupported()trueを返す)場合は、setFullScreenWindow(java.awt.Window)を使用してあらかじめフル・スクリーン排他モードにする必要があります。

      表示モードは、getDisplayModes()で返される表示モードのいずれかである必要があります。例外として、DisplayMode.REFRESH_RATE_UNKNOWNリフレッシュ・レートで表示モードを渡すと、幅、高さおよびビットの深さが一致する利用可能な表示モードのリストから表示モードを選択することになります。 ただし、ビットの深さがDisplayMode.BIT_DEPTH_MULTIである表示モードは、getDisplayModes()で返されるリストにそのようなモードが存在する場合にのみ渡すことができます。

      コード例:

      
       Frame frame;
       DisplayMode newDisplayMode;
       GraphicsDevice gd;
       // create a Frame, select desired DisplayMode from the list of modes
       // returned by gd.getDisplayModes() ...
      
       if (gd.isFullScreenSupported()) {
           gd.setFullScreenWindow(frame);
       } else {
          // proceed in non-full-screen mode
          frame.setSize(...);
          frame.setLocation(...);
          frame.setVisible(true);
       }
      
       if (gd.isDisplayChangeSupported()) {
           gd.setDisplayMode(newDisplayMode);
       }
       

      パラメータ:
      dm - このグラフィックス・デバイスの新しい表示モード。
      例外:
      IllegalArgumentException - 指定されたDisplayModenullの場合、またはgetDisplayModesで返された配列で利用できない場合
      UnsupportedOperationException - isDisplayChangeSupportedfalseを返す場合
      導入されたバージョン:
      1.4
      関連項目:
      getDisplayMode(), getDisplayModes(), isDisplayChangeSupported()
    • getDisplayMode

      public DisplayMode getDisplayMode()
      このGraphicsDeviceの現在の表示モードを返します。 返される表示モードのリフレッシュ・レートが不確定である場合は、リフレッシュ・レートとしてDisplayMode.REFRESH_RATE_UNKNOWNを持つことができます。 同様に、返される表示モードのビットの深さが不確定である場合または複数のビット深さがサポートされている場合は、ビットの深さとしてDisplayMode.BIT_DEPTH_MULTIを持つことができます。
      戻り値:
      このグラフィックス・デバイスの現在の表示モード
      導入されたバージョン:
      1.4
      関連項目:
      setDisplayMode(DisplayMode)
    • getDisplayModes

      public DisplayMode[] getDisplayModes()
      このGraphicsDeviceに使用可能なすべての表示モードを返します。 返される表示モードのリフレッシュ・レートが不確定である場合は、リフレッシュ・レートとしてDisplayMode.REFRESH_RATE_UNKNOWNを持つことができます。 同様に、返される表示モードのビットの深さが不確定である場合または複数のビット深さがサポートされている場合は、ビットの深さとしてDisplayMode.BIT_DEPTH_MULTIを持つことができます。
      戻り値:
      このグラフィックス・デバイスで使用できるすべての表示モード
      導入されたバージョン:
      1.4
    • getAvailableAcceleratedMemory

      public int getAvailableAcceleratedMemory()
      このメソッドは、このデバイスの高速メモリーで使用できるバイト数を返します。 一部のイメージは、先着順で作成されるかまたは高速メモリーにキャッシュされます。 一部のオペレーティング・システムでは、このメモリーは有限のリソースです。 このメソッドを呼び出し、イメージの作成とフラッシュをスケジューリングすることにより、アプリケーションがこの有限のリソースをもっとも効果的に使用できるようになります。
      返された値は、使用できるメモリー量のスナップショットです。一部のイメージは、そのメモリーに割り当てられることで問題が生じる場合があります。
      たとえば、オペレーティング・システム、ドライバ、メモリー構成、およびスレッドの状況によっては、指定されたイメージに対して報告された全体のサイズが使用できない場合があります。 VolatileImageに関連するImageCapabilitiesオブジェクト上に、さらに照会を行うメソッドがあります。このメソッドは、高速メモリーに特定のVolatileImageが作成されているかどうかを判定するために使用できます。
      戻り値:
      高速メモリーで利用可能なバイト数。 負の戻り値は、このGraphicsDevice上の高速メモリーの量が不確定であることを示す
      導入されたバージョン:
      1.4
      関連項目:
      Image.flush(), ImageCapabilities.isAccelerated()
    • isWindowTranslucencySupported

      public boolean isWindowTranslucencySupported​(GraphicsDevice.WindowTranslucency translucencyKind)
      特定のレベルの半透明性がこのグラフィックス・デバイスでサポートされているかどうかを返します。
      パラメータ:
      translucencyKind - 半透明性のサポートの種類
      戻り値:
      指定された半透明性の種類がサポートされているかどうか
      導入されたバージョン:
      1.7