JavaTM 2 Platform
Standard Ed. 5.0

java.awt
类 GraphicsConfiguration

java.lang.Object
  继承者 java.awt.GraphicsConfiguration

public abstract class GraphicsConfiguration
extends Object

GraphicsConfiguration 类描述了图形目标(如打印机或监视器)的特征。有许多与单一图形设备相关的 GraphicsConfiguration 对象,它们表示了不同的绘图模式或功能。相应的本机结构也将会因平台而异。例如,在 X11 窗口系统上,每个可视组件都是一个不同的 GraphicsConfiguration。在 Microsoft Windows 系统上,GraphicsConfiguration 表示当前分辨率和颜色深度下可用的 PixelFormat。

在虚拟设备多屏幕环境中(其中桌面区域可以跨越多个物理屏幕设备),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());
          }
      } 

另请参见:
Window, Frame, GraphicsEnvironment, GraphicsDevice

构造方法摘要
protected GraphicsConfiguration()
          这是一个不可直接实例化的抽象类。
 
方法摘要
abstract  BufferedImage createCompatibleImage(int width, int height)
          返回一个数据布局和颜色模型与此 GraphicsConfiguration 兼容的 BufferedImage
abstract  BufferedImage createCompatibleImage(int width, int height, int transparency)
          返回一个支持指定透明度,并且数据布局和颜色模型与此 GraphicsConfiguration 兼容的 BufferedImage
abstract  VolatileImage createCompatibleVolatileImage(int width, int height)
          返回一个数据布局和颜色模型与此 GraphicsConfiguration 兼容的 VolatileImage
 VolatileImage createCompatibleVolatileImage(int width, int height, ImageCapabilities caps)
          返回一个数据布局和颜色模型与此 GraphicsConfiguration 兼容并使用指定图像功能的 VolatileImage
 VolatileImage createCompatibleVolatileImage(int width, int height, ImageCapabilities caps, int transparency)
          返回一个数据布局和颜色模型与此 GraphicsConfiguration 兼容并使用指定图像功能和透明度值的 VolatileImage
abstract  VolatileImage createCompatibleVolatileImage(int width, int height, int transparency)
          返回一个数据布局和颜色模型与此 GraphicsConfiguration 兼容的 VolatileImage
abstract  Rectangle getBounds()
          返回 GraphicsConfiguration 在设备坐标中的边界。
 BufferCapabilities getBufferCapabilities()
          返回此 GraphicsConfiguration 的缓冲区功能。
abstract  ColorModel getColorModel()
          返回与此 GraphicsConfiguration 相关的 ColorModel
abstract  ColorModel getColorModel(int transparency)
          返回与此 GraphicsConfiguration 相关并支持指定透明度的 ColorModel
abstract  AffineTransform getDefaultTransform()
          返回此 GraphicsConfiguration 默认的 AffineTransform
abstract  GraphicsDevice getDevice()
          返回与此 GraphicsConfiguration 相关的 GraphicsDevice
 ImageCapabilities getImageCapabilities()
          返回此 GraphicsConfiguration 的图像功能。
abstract  AffineTransform getNormalizingTransform()
          返回可与 GraphicsConfiguration 的默认 AffineTransform 连接的 AffineTransform,这样用户空间的 72 单元等于设备空间的 1 英寸。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

GraphicsConfiguration

protected GraphicsConfiguration()
这是一个不可直接实例化的抽象类。必须从合适的工厂或查询方法中获取实例。

另请参见:
GraphicsDevice.getConfigurations(), GraphicsDevice.getDefaultConfiguration(), GraphicsDevice.getBestConfiguration(java.awt.GraphicsConfigTemplate), Graphics2D.getDeviceConfiguration()
方法详细信息

getDevice

public abstract GraphicsDevice getDevice()
返回与此 GraphicsConfiguration 相关的 GraphicsDevice

返回:
一个与此 GraphicsConfiguration 相关的 GraphicsDevice 对象。

createCompatibleImage

public abstract BufferedImage createCompatibleImage(int width,
                                                    int height)
返回一个数据布局和颜色模型与此 GraphicsConfiguration 兼容的 BufferedImage。此方法与设备的内存映射无关。返回的 BufferedImage 其数据布局和颜色模型与本机设备配置最接近,因此最适合于位图传输 (blitted) 到此设备上。

参数:
width - 返回的 BufferedImage 宽度
height - 返回的 BufferedImage 高度
返回:
一个数据布局和颜色模型与此 GraphicsConfiguration 兼容的 BufferedImage

createCompatibleVolatileImage

public abstract VolatileImage createCompatibleVolatileImage(int width,
                                                            int height)
返回一个数据布局和颜色模型与此 GraphicsConfiguration 兼容的 VolatileImage。返回的 VolatileImage 可能有最适合于存储基础图形设备的数据,并且可能因此从特定于平台的呈现加速中受益。

参数:
width - 返回的 VolatileImage 宽度
height - 返回的 VolatileImage 高度
返回:
一个数据布局和颜色模型与此 GraphicsConfiguration 兼容的 VolatileImage
另请参见:
Component.createVolatileImage(int, int)

createCompatibleVolatileImage

public abstract VolatileImage createCompatibleVolatileImage(int width,
                                                            int height,
                                                            int transparency)
返回一个数据布局和颜色模型与此 GraphicsConfiguration 兼容的 VolatileImage。返回的 VolatileImage 可能有最适合于存储基础图形设备的数据,并且可能因此从特定于平台的呈现加速中受益。

参数:
width - 返回的 VolatileImage 宽度
height - 返回的 VolatileImage 高度
transparency - 指定的透明度模式
返回:
一个数据和颜色模型与此 GraphicsConfiguration 兼容的 VolatileImage
抛出:
IllegalArgumentException - 如果透明度不是一个有效值
从以下版本开始:
1.5
另请参见:
Transparency.OPAQUE, Transparency.BITMASK, Transparency.TRANSLUCENT, Component.createVolatileImage(int, int)

createCompatibleVolatileImage

public VolatileImage createCompatibleVolatileImage(int width,
                                                   int height,
                                                   ImageCapabilities caps)
                                            throws AWTException
返回一个数据布局和颜色模型与此 GraphicsConfiguration 兼容并使用指定图像功能的 VolatileImage。返回的 VolatileImage 其数据布局和颜色模型与本机设备配置最接近,因此最适合于位图传输 (blitted) 到此设备上。

参数:
width - 返回的 VolatileImage 宽度
height - 返回的 VolatileImage 高度
caps - 图像功能
返回:
一个数据布局和颜色模型与此 GraphicsConfiguration 兼容的 VolatileImage
抛出:
AWTException - 如果此图形配置无法满足提供的图像功能
从以下版本开始:
1.4

createCompatibleVolatileImage

public VolatileImage createCompatibleVolatileImage(int width,
                                                   int height,
                                                   ImageCapabilities caps,
                                                   int transparency)
                                            throws AWTException
返回一个数据布局和颜色模型与此 GraphicsConfiguration 兼容并使用指定图像功能和透明度值的 VolatileImage。返回的 VolatileImage 其数据布局和颜色模型与本机设备配置最接近,因此最适合于位图传输 (blitted) 到此设备上。

参数:
width - 返回的 VolatileImage 宽度
height - 返回的 VolatileImage 高度
caps - 图像功能
transparency - 指定的透明度模式
返回:
一个数据布局和颜色模型与此 GraphicsConfiguration 兼容的 VolatileImage
抛出:
IllegalArgumentException - 如果透明度不是一个有效值
AWTException - 如果此图形配置无法满足提供的图像功能
从以下版本开始:
1.5
另请参见:
Transparency.OPAQUE, Transparency.BITMASK, Transparency.TRANSLUCENT, Component.createVolatileImage(int, int)

createCompatibleImage

public abstract BufferedImage createCompatibleImage(int width,
                                                    int height,
                                                    int transparency)
返回一个支持指定透明度,并且数据布局和颜色模型与此 GraphicsConfiguration 兼容的 BufferedImage。此方法与设备的内存映射无关。返回的 BufferedImage 其数据布局和颜色模型最适合于位图传输 (blitted) 到利用此 GraphicsConfiguration 的设备上。

参数:
width - 返回的 BufferedImage 宽度
height - 返回的 BufferedImage 高度
transparency - 指定的透明度模式
返回:
一个数据布局和颜色模型与此 GraphicsConfiguration 兼容并且还支持指定透明度的 BufferedImage
抛出:
IllegalArgumentException - 如果透明度不是一个有效值
另请参见:
Transparency.OPAQUE, Transparency.BITMASK, Transparency.TRANSLUCENT

getColorModel

public abstract ColorModel getColorModel()
返回与此 GraphicsConfiguration 相关的 ColorModel

返回:
一个与此 GraphicsConfiguration 相关的 ColorModel 对象。

getColorModel

public abstract ColorModel getColorModel(int transparency)
返回与此 GraphicsConfiguration 相关并支持指定透明度的 ColorModel

参数:
transparency - 指定的透明度模式
返回:
一个与此 GraphicsConfiguration 相关并支持指定的透明度的 ColorModel 对象,如果透明度不是一个有效值,则返回 null。
另请参见:
Transparency.OPAQUE, Transparency.BITMASK, Transparency.TRANSLUCENT

getDefaultTransform

public abstract AffineTransform getDefaultTransform()
返回此 GraphicsConfiguration 默认的 AffineTransform。此 AffineTransform 通常是大多数正常屏幕的 Identity 转换。默认的 AffineTransform 将坐标映射到设备上,比如 72 用户空间坐标单元在尺度上近似于设备空间的 1 英寸。规格转换可使映射关系更准确。默认 AffineTransform 为屏幕和打印机设备定义的坐标空间中的坐标,其原点在设备目标区域的左上角,X 坐标方向向右,Y 坐标方向向下。对于与此设备无关的图像缓冲区,如那些非 createCompatibleImage 创建的缓冲区,此 AffineTransform 即为 Identity 转换。

返回:
GraphicsConfiguration 默认的 AffineTransform

getNormalizingTransform

public abstract AffineTransform getNormalizingTransform()
返回可与 GraphicsConfiguration 的默认 AffineTransform 连接的 AffineTransform,这样用户空间的 72 单元等于设备空间的 1 英寸。

对于特殊的 Graphics2D g,可使用以下伪代码重新设置转换来创建这种映射关系:

      GraphicsConfiguration gc = g.getGraphicsConfiguration();

      g.setTransform(gc.getDefaultTransform());
      g.transform(gc.getNormalizingTransform());
 
注意,有时此 AffineTransform 是诸如打印机或图元文件输出的标识,并且此 AffineTransform 只与基础系统提供的信息一样准确。对于与设备无关的图像缓冲区,如那些非 createCompatibleImage 创建的缓冲区,因为没有有效的距离尺度,此 AffineTransform 即为 Identity 转换。

返回:
一个连接默认 AffineTransformAffineTransform,这样用户空间的 72 单元映射到设备空间的 1 英寸。

getBounds

public abstract Rectangle getBounds()
返回 GraphicsConfiguration 在设备坐标中的边界。在虚拟设备的多屏环境中,边界可以有负 X 或 Y 原点。

返回:
GraphicsConfiguration 覆盖的区域边界。
从以下版本开始:
1.3

getBufferCapabilities

public BufferCapabilities getBufferCapabilities()
返回此 GraphicsConfiguration 的缓冲区功能。

返回:
此图形配置对象的缓冲区功能
从以下版本开始:
1.4

getImageCapabilities

public ImageCapabilities getImageCapabilities()
返回此 GraphicsConfiguration 的图像功能。

返回:
此图形配置对象的图像功能
从以下版本开始:
1.4

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策