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」を参照してください。
| 修飾子と型 | クラスと説明 |
|---|---|
static class |
GraphicsDevice.WindowTranslucency
基本となるシステムでサポートされている半透明性の種類。
|
| 修飾子と型 | フィールドと説明 |
|---|---|
static int |
TYPE_IMAGE_BUFFER
デバイスはイメージ・バッファです。
|
static int |
TYPE_PRINTER
デバイスはプリンタです。
|
static int |
TYPE_RASTER_SCREEN
デバイスはラスター画面です。
|
| 修飾子 | コンストラクタと説明 |
|---|---|
protected |
GraphicsDevice()
これは、インスタンスを直接には生成できない抽象クラスです。
|
| 修飾子と型 | メソッドと説明 |
|---|---|
int |
getAvailableAcceleratedMemory()
このメソッドは、このデバイスの高速メモリーで使用できるバイト数を返します。
|
GraphicsConfiguration |
getBestConfiguration(GraphicsConfigTemplate gct)
GraphicsConfigTemplateで定義された基準を渡す、考えられる「最適な」構成を返します。 |
abstract GraphicsConfiguration[] |
getConfigurations()
この
GraphicsDeviceに関連付けられたすべてのGraphicsConfigurationオブジェクトを返します。 |
abstract GraphicsConfiguration |
getDefaultConfiguration()
この
GraphicsDeviceに関連付けられたデフォルトのGraphicsConfigurationを返します。 |
DisplayMode |
getDisplayMode()
この
GraphicsDeviceの現在の表示モードを返します。 |
DisplayMode[] |
getDisplayModes()
この
GraphicsDeviceに使用可能なすべての表示モードを返します。 |
Window |
getFullScreenWindow()
デバイスがフル・スクリーン・モードにある場合に、フル・スクリーン・ウィンドウを表す
Windowオブジェクトを返します。 |
abstract String |
getIDstring()
この
GraphicsDeviceに関連付けられた識別文字列を返します。 |
abstract int |
getType()
この
GraphicsDeviceのタイプを返します。 |
boolean |
isDisplayChangeSupported()
この
GraphicsDeviceが低レベル表示変更をサポートしている場合はtrueを返します。 |
boolean |
isFullScreenSupported()
この
GraphicsDeviceがフル・スクリーン排他モードをサポートしている場合はtrueを返します。 |
boolean |
isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency translucencyKind)
特定のレベルの半透明性がこのグラフィックス・デバイスでサポートされているかどうかを返します。
|
void |
setDisplayMode(DisplayMode dm)
このグラフィックス・デバイスの表示モードを設定します。
|
void |
setFullScreenWindow(Window w)
フル・スクリーン・モードに入るか、またはウィンドウ・モードに復帰します。
|
public static final int TYPE_RASTER_SCREEN
public static final int TYPE_PRINTER
public static final int TYPE_IMAGE_BUFFER
protected GraphicsDevice()
public abstract int getType()
GraphicsDeviceのタイプを返します。GraphicsDeviceの型。TYPE_RASTER_SCREEN、TYPE_PRINTER、またはTYPE_IMAGE_BUFFER。TYPE_RASTER_SCREEN, TYPE_PRINTER, TYPE_IMAGE_BUFFERpublic 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。public abstract GraphicsConfiguration[] getConfigurations()
GraphicsDeviceに関連付けられたすべてのGraphicsConfigurationオブジェクトを返します。GraphicsDeviceに関連付けられているGraphicsConfigurationオブジェクトの配列。public abstract GraphicsConfiguration getDefaultConfiguration()
GraphicsDeviceに関連付けられたデフォルトのGraphicsConfigurationを返します。GraphicsDeviceのデフォルトのGraphicsConfiguration。public GraphicsConfiguration getBestConfiguration(GraphicsConfigTemplate gct)
GraphicsConfigTemplateで定義された基準を渡す、考えられる「最適な」構成を返します。gct - 有効なGraphicsConfigurationを取得するために使用されるGraphicsConfigTemplateオブジェクトGraphicsConfigTemplateで定義されている基準を渡すことのできるGraphicsConfiguration。GraphicsConfigTemplatepublic boolean isFullScreenSupported()
GraphicsDeviceがフル・スクリーン排他モードをサポートしている場合はtrueを返します。SecurityManagerがインストールされている場合は、そのcheckPermissionメソッドがAWTPermission("fullScreenExclusive")で呼び出されます。isFullScreenSupportedは、そのアクセス権が許可されている場合にのみtrueを返します。AWTPermissionpublic void setFullScreenWindow(Window w)
isFullScreenSupportedがtrueを返す場合にのみ利用できます。
排他モードでは、次のような状態になります。
Component.enableInputMethods(false)を呼び出して、コンポーネントをインプット・メソッド・フレームワークの非クライアントにすることをお薦めします。
シミュレーション・フルスクリーン・モードでは、画面の最大限の可視領域に合わせてウィンドウが配置されサイズ変更されます。ただし、Windowオブジェクトがデスクトップ設定に厳密に対応する方法で配置およびサイズ設定されるように、ネイティブ・ウィンドウ管理システムは要求された幾何学的図形に関連するデータを変更する可能性があります。
フル・スクリーン・モードに切り替えた際に、フル・スクリーン・ウィンドウとして使用するウィンドウが表示されていない場合、このメソッドはそのウィンドウを表示します。ウィンドウ・モードに戻っても表示されたままになります。
フル・スクリーン・モードに切り替えた際に、ウィンドウの半透明性効果はすべてリセットされます。その形状はnullに設定され、不透明性の値は1.0fに設定され、背景色のアルファは255 (完全に不透明)に設定されます。ウィンドウ・モードに戻ってもこれらの値は復元されません。
装飾されたウィンドウがフル・スクリーン・モードでどのように動作するかは指定されておらず、プラットフォームに依存します。そのため、setUndecoratedメソッドを使用してFrameまたはDialogオブジェクトの装飾をオフにすることをお薦めします。
フル・スクリーン排他ウィンドウからウィンドウ・モードに復帰すると、setDisplayModeの呼出しによって行われた表示変更は、元の状態に自動的に復元されます。
w - フル・スクリーン・ウィンドウとして使用するウィンドウ。ウィンドウ・モードに復帰する場合はnull。一部のプラットフォームでは、フル・スクリーン・ウィンドウがトップレベル・コンポーネント(つまり、Frame)であることが期待されるため、ここではWindowよりもFrameを使うほうが適切です。isFullScreenSupported(), getFullScreenWindow(), setDisplayMode(java.awt.DisplayMode), Component.enableInputMethods(boolean), Component.setVisible(boolean), Frame.setUndecorated(boolean), Dialog.setUndecorated(boolean)public Window getFullScreenWindow()
Windowオブジェクトを返します。null。setFullScreenWindow(Window)public boolean isDisplayChangeSupported()
GraphicsDeviceが低レベル表示変更をサポートしている場合はtrueを返します。一部のプラットフォームでは、フル・スクリーン排他モードでのみ低レベル表示変更が許可されることがあります。つまり、isFullScreenSupported()がtrueを返し、setFullScreenWindow(java.awt.Window)を使用してアプリケーションがすでにフル・スクリーン・モードになっている場合です。isFullScreenSupported(), setDisplayMode(java.awt.DisplayMode), setFullScreenWindow(java.awt.Window)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を返す場合getDisplayMode(), getDisplayModes(), isDisplayChangeSupported()public DisplayMode getDisplayMode()
GraphicsDeviceの現在の表示モードを返します。返される表示モードのリフレッシュ・レートが不確定である場合は、リフレッシュ・レートとしてDisplayMode.REFRESH_RATE_UNKNOWNを持つことができます。同様に、返される表示モードのビットの深さが不確定である場合または複数のビット深さがサポートされている場合は、ビットの深さとしてDisplayMode.BIT_DEPTH_MULTIを持つことができます。setDisplayMode(DisplayMode)public DisplayMode[] getDisplayModes()
GraphicsDeviceに使用可能なすべての表示モードを返します。返される表示モードのリフレッシュ・レートが不確定である場合は、リフレッシュ・レートとしてDisplayMode.REFRESH_RATE_UNKNOWNを持つことができます。同様に、返される表示モードのビットの深さが不確定である場合または複数のビット深さがサポートされている場合は、ビットの深さとしてDisplayMode.BIT_DEPTH_MULTIを持つことができます。public int getAvailableAcceleratedMemory()
ImageCapabilitiesオブジェクト上に、さらに照会を行うメソッドがあります。このメソッドは、高速メモリーに特定のVolatileImageが作成されているかどうかを判定するために使用できます。Image.flush(), ImageCapabilities.isAccelerated()public boolean isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency translucencyKind)
translucencyKind - 半透明性のサポートの種類 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.