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 int
デバイスはイメージ・バッファです。static int
デバイスはプリンタです。static int
デバイスはラスター画面です。 -
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明int
このメソッドは、このデバイスの高速メモリーで使用できるバイト数を返します。GraphicsConfigTemplate
で定義された基準を渡す、考えられる「最適な」構成を返します。abstract GraphicsConfiguration[]
このGraphicsDevice
に関連付けられたすべてのGraphicsConfiguration
オブジェクトを返します。abstract GraphicsConfiguration
このGraphicsDevice
に関連付けられたデフォルトのGraphicsConfiguration
を返します。このGraphicsDevice
の現在の表示モードを返します。このGraphicsDevice
に使用可能なすべての表示モードを返します。デバイスがフル・スクリーン・モードにある場合に、フル・スクリーン・ウィンドウを表すWindow
オブジェクトを返します。abstract String
このGraphicsDevice
に関連付けられた識別文字列を返します。abstract int
getType()
このGraphicsDevice
のタイプを返します。boolean
このGraphicsDevice
が低レベル表示変更をサポートしている場合はtrue
を返します。boolean
このGraphicsDevice
がフル・スクリーン排他モードをサポートしている場合はtrue
を返します。boolean
isWindowTranslucencySupported(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。 - 関連項目:
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
。 - 関連項目:
GraphicsConfigTemplate
-
isFullScreenSupported
public boolean isFullScreenSupported()このGraphicsDevice
がフル・スクリーン排他モードをサポートしている場合はtrue
を返します。 SecurityManagerがインストールされている場合は、そのcheckPermission
メソッドがAWTPermission("fullScreenExclusive")
で呼び出されます。isFullScreenSupported
は、そのアクセス権が許可されている場合にのみtrueを返します。- 戻り値:
- このグラフィックス・デバイスでフル・スクリーン排他モードが利用可能かどうか
- 導入されたバージョン:
- 1.4
- 関連項目:
AWTPermission
-
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
- 関連項目:
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
- 指定されたDisplayMode
がnull
の場合、またはgetDisplayModes
で返された配列で利用できない場合UnsupportedOperationException
-isDisplayChangeSupported
がfalse
を返す場合- 導入されたバージョン:
- 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
-