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_BUFFER
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
。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
。GraphicsConfigTemplate
public boolean isFullScreenSupported()
GraphicsDevice
がフル・スクリーン排他モードをサポートしている場合はtrue
を返します。SecurityManagerがインストールされている場合は、そのcheckPermission
メソッドがAWTPermission("fullScreenExclusive")
で呼び出されます。isFullScreenSupported
は、そのアクセス権が許可されている場合にのみtrueを返します。AWTPermission
public 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.