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()
これは、インスタンスを直接には生成できない abstract クラスです。
|
修飾子と型 | メソッドと説明 |
---|---|
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
をデバッグ用に使用できます。JavaTM 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, 2013, Oracle and/or its affiliates. All rights reserved.