モジュール java.desktop
パッケージ java.awt

クラスGraphicsConfiguration

java.lang.Object
java.awt.GraphicsConfiguration

public abstract class GraphicsConfiguration extends Object
GraphicsConfigurationクラスは、プリンタやモニターなどのグラフィックス・デスティネーションの特性を記述します。 1つのグラフィックス・デバイスには、異なる描画モードまたは機能を表す多くの関連するGraphicsConfigurationがあります。 対応するネイティブ構造はプラットフォーム間で異なります。 たとえば、X11ウィンドウ・システムでは、各表示はそれぞれ異なるGraphicsConfigurationです。 Microsoft Windowsでは、GraphicsConfigurationは現在の解像度と色深度で使用できるPixelFormatsを表示します。

デスクトップ領域が物理的に複数の画面デバイスにまたがる仮想デバイスのマルチスクリーン環境では、GraphicsConfigurationオブジェクトの境界は、仮想の座標系を基準にしています。 コンポーネントの位置を設定する場合は、次のコード・サンプルで示すように、getBoundsを使って目的のGraphicsConfigurationの境界を取得し、GraphicsConfigurationの座標との位置をオフセットします。

      Frame f = new Frame(gc);  // where gc is a GraphicsConfiguration
      Rectangle bounds = gc.getBounds();
      f.setLocation(10 + bounds.x, 10 + bounds.y); 

環境が仮想デバイス環境かどうかを判定するには、システムにあるすべてのGraphicsConfigurationオブジェクトでgetBoundsを呼び出します。 返された境界の原点のいずれかが(0, 0)以外であれば、環境は仮想デバイス環境です。

getBoundsを使って仮想デバイスの境界も判定できます。 そのためには、まずシステムにあるすべてのGraphicsConfigurationオブジェクトでgetBoundsを呼び出します。 続いて、getBoundsの呼び出しから返された境界のすべての和集合を計算します。 和集合が仮想デバイスの境界です。 次のコード・サンプルは、仮想デバイスの境界を計算したものです。


      Rectangle virtualBounds = new Rectangle();
      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++) {
              virtualBounds =
                  virtualBounds.union(gc[i].getBounds());
          }
      } 

関連項目: