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」を参照してください。
-
ネストされたクラスのサマリー
ネストされたクラス -
フィールドのサマリー
フィールド修飾子と型フィールド説明static final intデバイスはイメージ・バッファです。static final intデバイスはプリンタです。static final intデバイスはラスター画面です。 -
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明intこのメソッドは、このデバイスの高速メモリーで使用できるバイト数を返します。GraphicsConfigTemplateで定義された基準を渡す、考えられる「最適な」構成を返します。abstract GraphicsConfiguration[]このGraphicsDeviceに関連付けられたすべてのGraphicsConfigurationオブジェクトを返します。abstract GraphicsConfigurationこのGraphicsDeviceに関連付けられたデフォルトのGraphicsConfigurationを返します。このGraphicsDeviceの現在の表示モードを返します。このGraphicsDeviceに使用可能なすべての表示モードを返します。デバイスがフル・スクリーン・モードにある場合に、フル・スクリーン・ウィンドウを表すWindowオブジェクトを返します。abstract StringこのGraphicsDeviceに関連付けられた識別文字列を返します。abstract intgetType()このGraphicsDeviceのタイプを返します。booleanこのGraphicsDeviceが低レベル表示変更をサポートしている場合はtrueを返します。booleanこのGraphicsDeviceがフル・スクリーン排他モードをサポートしている場合はtrueを返します。booleanisWindowTranslucencySupported(GraphicsDevice.WindowTranslucency translucencyKind) 特定のレベルの半透明性がこのグラフィックス・デバイスでサポートされているかどうかを返します。voidこのグラフィックス・デバイスの表示モードを設定します。voidフル・スクリーン・モードに入るか、またはウィンドウ・モードに復帰します。
-
フィールド詳細
-
TYPE_RASTER_SCREEN
public static final int TYPE_RASTER_SCREENデバイスはラスター画面です。- 関連項目:
-
TYPE_PRINTER
public static final int TYPE_PRINTERデバイスはプリンタです。- 関連項目:
-
TYPE_IMAGE_BUFFER
public static final int TYPE_IMAGE_BUFFERデバイスはイメージ・バッファです。 このバッファはデバイスまたはシステム・メモリーに格納されますが、ユーザーが物理的に表示することはできません。- 関連項目:
-
-
コンストラクタの詳細
-
GraphicsDevice
protected GraphicsDevice()これは、インスタンスを直接には生成できない抽象クラスです。 インスタンスは、適切なファクトリまたはクエリー・メソッドから取得する必要があります。
-
-
メソッドの詳細
-
getType
public abstract int getType()このGraphicsDeviceのタイプを返します。- 戻り値:
- この
GraphicsDeviceの型。TYPE_RASTER_SCREEN、TYPE_PRINTER、またはTYPE_IMAGE_BUFFER。 - 関連項目:
-
getIDstring
public abstract String getIDstring()このGraphicsDeviceに関連付けられた識別文字列を返します。特定のプログラムは
GraphicsEnvironmentにある複数のGraphicsDeviceを使用する場合があります。 このメソッドは、ローカルのGraphicsEnvironmentにある特定のGraphicsDeviceを識別するStringを返します。 このStringを設定するpublicメソッドはありませんが、プログラマはこのStringをデバッグ用に使用できます。 Java 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。 - 関連項目:
-
isFullScreenSupported
public boolean isFullScreenSupported()このGraphicsDeviceがフル・スクリーン排他モードをサポートしている場合はtrueを返します。 SecurityManagerがインストールされている場合は、そのcheckPermissionメソッドがAWTPermission("fullScreenExclusive")で呼び出されます。isFullScreenSupportedは、そのアクセス権が許可されている場合にのみtrueを返します。- 戻り値:
- このグラフィックス・デバイスでフル・スクリーン排他モードが利用可能かどうか
- 導入されたバージョン:
- 1.4
- 関連項目:
-
setFullScreenWindow
public void setFullScreenWindow(Window w) フル・スクリーン・モードに入るか、またはウィンドウ・モードに復帰します。 フル・スクリーン・モードに入ると、排他モードまたはシミュレーション・モードになります。 排他モードは、isFullScreenSupportedがtrueを返す場合にのみ利用できます。排他モードでは、次のような状態になります。
- Windowsはフル・スクリーン・ウィンドウをオーバーラップできません。 その他のすべてのアプリケーション・ウィンドウは、常にフル・スクリーン・ウィンドウの下にZ軸順で隠されて表示されます。
- デバイスのフル・スクリーン・ウィンドウは常に1つだけです。そのため、既存のフル・スクリーン・ウィンドウが存在するときにこのメソッドを呼び出すと、既存のフル・スクリーン・ウィンドウはウィンドウ・モードに復帰します。
- インプット・メソッド・ウィンドウが無効になります。
Component.enableInputMethods(false)を呼び出して、コンポーネントをインプット・メソッド・フレームワークの非クライアントにすることをお薦めします。
シミュレーション・フルスクリーン・モードでは、画面の最大限の可視領域に合わせてウィンドウが配置されサイズ変更されます。 ただし、
Windowオブジェクトがデスクトップ設定に厳密に対応する方法で配置およびサイズ設定されるように、ネイティブ・ウィンドウ管理システムは要求された幾何学的図形に関連するデータを変更する可能性があります。フル・スクリーン・モードに切り替えた際に、フル・スクリーン・ウィンドウとして使用するウィンドウが表示されていない場合、このメソッドはそのウィンドウを表示します。 ウィンドウ・モードに戻っても表示されたままになります。
フル・スクリーン・モードに切り替えた際に、ウィンドウの半透明性効果はすべてリセットされます。 その形状は
nullに設定され、不透明性の値は1.0fに設定され、背景色のアルファは255 (完全に不透明)に設定されます。 ウィンドウ・モードに戻ってもこれらの値は復元されません。装飾されたウィンドウがフル・スクリーン・モードでどのように動作するかは指定されておらず、プラットフォームに依存します。 そのため、
setUndecoratedメソッドを使用してFrameまたはDialogオブジェクトの装飾をオフにすることをお薦めします。フル・スクリーン排他ウィンドウからウィンドウ・モードに復帰すると、
setDisplayModeの呼出しによって行われた表示変更は、元の状態に自動的に復元されます。- パラメータ:
w- フル・スクリーン・ウィンドウとして使用するウィンドウ。ウィンドウ・モードに復帰する場合はnull。 一部のプラットフォームでは、フル・スクリーン・ウィンドウがトップレベル・コンポーネント(つまり、Frame)であることが期待されるため、ここではWindowよりもFrameを使うほうが適切です。- 導入されたバージョン:
- 1.4
- 関連項目:
-
getFullScreenWindow
public Window getFullScreenWindow()デバイスがフル・スクリーン・モードにある場合に、フル・スクリーン・ウィンドウを表すWindowオブジェクトを返します。- 戻り値:
- フル・スクリーン・ウィンドウ。デバイスがフル・スクリーン・モードでない場合は
null。 - 導入されたバージョン:
- 1.4
- 関連項目:
-
isDisplayChangeSupported
public boolean isDisplayChangeSupported()このGraphicsDeviceが低レベル表示変更をサポートしている場合はtrueを返します。 一部のプラットフォームでは、フル・スクリーン排他モードでのみ低レベル表示変更が許可されることがあります。つまり、isFullScreenSupported()がtrueを返し、setFullScreenWindow(java.awt.Window)を使用してアプリケーションがすでにフル・スクリーン・モードになっている場合です。- 戻り値:
- このグラフィックス・デバイスが低レベル表示変更をサポートするかどうか
- 導入されたバージョン:
- 1.4
- 関連項目:
-
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- このグラフィックス・デバイスの新しい表示モード。- throws:
IllegalArgumentException- 指定されたDisplayModeがnullの場合、またはgetDisplayModesで返された配列で利用できない場合UnsupportedOperationException-isDisplayChangeSupportedがfalseを返す場合- 導入されたバージョン:
- 1.4
- 関連項目:
-
getDisplayMode
public DisplayMode getDisplayMode()このGraphicsDeviceの現在の表示モードを返します。 返される表示モードのリフレッシュ・レートが不確定である場合は、リフレッシュ・レートとしてDisplayMode.REFRESH_RATE_UNKNOWNを持つことができます。 同様に、返される表示モードのビットの深さが不確定である場合または複数のビット深さがサポートされている場合は、ビットの深さとしてDisplayMode.BIT_DEPTH_MULTIを持つことができます。- 戻り値:
- このグラフィックス・デバイスの現在の表示モード
- 導入されたバージョン:
- 1.4
- 関連項目:
-
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
- 関連項目:
-
isWindowTranslucencySupported
public boolean isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency translucencyKind) 特定のレベルの半透明性がこのグラフィックス・デバイスでサポートされているかどうかを返します。- パラメータ:
translucencyKind- 半透明性のサポートの種類- 戻り値:
- 指定された半透明性の種類がサポートされているかどうか
- 導入されたバージョン:
- 1.7
-