public abstract class GraphicsConfiguration extends Object
GraphicsConfiguration class describes the
 characteristics of a graphics destination such as a printer or monitor.
 There can be many GraphicsConfiguration objects associated
 with a single graphics device, representing different drawing modes or
 capabilities.  The corresponding native structure will vary from platform
 to platform.  For example, on X11 windowing systems,
 each visual is a different GraphicsConfiguration.
 On Microsoft Windows, GraphicsConfigurations represent
 PixelFormats available in the current resolution and color depth.
 
 In a virtual device multi-screen environment in which the desktop
 area could span multiple physical screen devices, the bounds of the
 GraphicsConfiguration objects are relative to the
 virtual coordinate system.  When setting the location of a
 component, use getBounds to get the bounds of
 the desired GraphicsConfiguration and offset the location
 with the coordinates of the GraphicsConfiguration,
 as the following code sample illustrates:
 
      Frame f = new Frame(gc);  // where gc is a GraphicsConfiguration
      Rectangle bounds = gc.getBounds();
      f.setLocation(10 + bounds.x, 10 + bounds.y); 
 
 To determine if your environment is a virtual device
 environment, call getBounds on all of the
 GraphicsConfiguration objects in your system.  If
 any of the origins of the returned bounds is not (0, 0),
 your environment is a virtual device environment.
 
 You can also use getBounds to determine the bounds
 of the virtual device.  To do this, first call getBounds on all
 of the GraphicsConfiguration objects in your
 system.  Then calculate the union of all of the bounds returned
 from the calls to getBounds.  The union is the
 bounds of the virtual device.  The following code sample
 calculates the bounds of the virtual device.
 
      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| Modifier | Constructor and Description | 
|---|---|
| protected  | GraphicsConfiguration()This is an abstract class that cannot be instantiated directly. | 
| Modifier and Type | Method and Description | 
|---|---|
| BufferedImage | createCompatibleImage(int width,
                     int height)Returns a  BufferedImagewith a data layout and color model
 compatible with thisGraphicsConfiguration. | 
| BufferedImage | createCompatibleImage(int width,
                     int height,
                     int transparency)Returns a  BufferedImagethat supports the specified
 transparency and has a data layout and color model
 compatible with thisGraphicsConfiguration. | 
| VolatileImage | createCompatibleVolatileImage(int width,
                             int height)Returns a  VolatileImagewith a data layout and color model
 compatible with thisGraphicsConfiguration. | 
| VolatileImage | createCompatibleVolatileImage(int width,
                             int height,
                             ImageCapabilities caps)Returns a  VolatileImagewith a data layout and color model
 compatible with thisGraphicsConfiguration, using
 the specified image capabilities. | 
| VolatileImage | createCompatibleVolatileImage(int width,
                             int height,
                             ImageCapabilities caps,
                             int transparency)Returns a  VolatileImagewith a data layout and color model
 compatible with thisGraphicsConfiguration, using
 the specified image capabilities and transparency value. | 
| VolatileImage | createCompatibleVolatileImage(int width,
                             int height,
                             int transparency)Returns a  VolatileImagewith a data layout and color model
 compatible with thisGraphicsConfiguration. | 
| abstract Rectangle | getBounds()Returns the bounds of the  GraphicsConfigurationin the device coordinates. | 
| BufferCapabilities | getBufferCapabilities()Returns the buffering capabilities of this
  GraphicsConfiguration. | 
| abstract ColorModel | getColorModel()Returns the  ColorModelassociated with thisGraphicsConfiguration. | 
| abstract ColorModel | getColorModel(int transparency)Returns the  ColorModelassociated with thisGraphicsConfigurationthat supports the specified
 transparency. | 
| abstract AffineTransform | getDefaultTransform()Returns the default  AffineTransformfor thisGraphicsConfiguration. | 
| abstract GraphicsDevice | getDevice()Returns the  GraphicsDeviceassociated with thisGraphicsConfiguration. | 
| ImageCapabilities | getImageCapabilities()Returns the image capabilities of this
  GraphicsConfiguration. | 
| abstract AffineTransform | getNormalizingTransform()Returns a  AffineTransformthat can be concatenated
 with the defaultAffineTransformof aGraphicsConfigurationso that 72 units in user
 space equals 1 inch in device space. | 
| boolean | isTranslucencyCapable()Returns whether this  GraphicsConfigurationsupports
 thePERPIXEL_TRANSLUCENTkind of translucency. | 
protected GraphicsConfiguration()
public abstract GraphicsDevice getDevice()
GraphicsDevice associated with this
 GraphicsConfiguration.GraphicsDevice object that is
 associated with this GraphicsConfiguration.public BufferedImage createCompatibleImage(int width, int height)
BufferedImage with a data layout and color model
 compatible with this GraphicsConfiguration.  This
 method has nothing to do with memory-mapping
 a device.  The returned BufferedImage has
 a layout and color model that is closest to this native device
 configuration and can therefore be optimally blitted to this
 device.width - the width of the returned BufferedImageheight - the height of the returned BufferedImageBufferedImage whose data layout and color
 model is compatible with this GraphicsConfiguration.public BufferedImage createCompatibleImage(int width, int height, int transparency)
BufferedImage that supports the specified
 transparency and has a data layout and color model
 compatible with this GraphicsConfiguration.  This
 method has nothing to do with memory-mapping
 a device. The returned BufferedImage has a layout and
 color model that can be optimally blitted to a device
 with this GraphicsConfiguration.width - the width of the returned BufferedImageheight - the height of the returned BufferedImagetransparency - the specified transparency modeBufferedImage whose data layout and color
 model is compatible with this GraphicsConfiguration
 and also supports the specified transparency.IllegalArgumentException - if the transparency is not a valid valueTransparency.OPAQUE, 
Transparency.BITMASK, 
Transparency.TRANSLUCENTpublic VolatileImage createCompatibleVolatileImage(int width, int height)
VolatileImage with a data layout and color model
 compatible with this GraphicsConfiguration.
 The returned VolatileImage
 may have data that is stored optimally for the underlying graphics
 device and may therefore benefit from platform-specific rendering
 acceleration.width - the width of the returned VolatileImageheight - the height of the returned VolatileImageVolatileImage whose data layout and color
 model is compatible with this GraphicsConfiguration.Component.createVolatileImage(int, int)public VolatileImage createCompatibleVolatileImage(int width, int height, int transparency)
VolatileImage with a data layout and color model
 compatible with this GraphicsConfiguration.
 The returned VolatileImage
 may have data that is stored optimally for the underlying graphics
 device and may therefore benefit from platform-specific rendering
 acceleration.width - the width of the returned VolatileImageheight - the height of the returned VolatileImagetransparency - the specified transparency modeVolatileImage whose data layout and color
 model is compatible with this GraphicsConfiguration.IllegalArgumentException - if the transparency is not a valid valueTransparency.OPAQUE, 
Transparency.BITMASK, 
Transparency.TRANSLUCENT, 
Component.createVolatileImage(int, int)public VolatileImage createCompatibleVolatileImage(int width, int height, ImageCapabilities caps) throws AWTException
VolatileImage with a data layout and color model
 compatible with this GraphicsConfiguration, using
 the specified image capabilities.
 If the caps parameter is null, it is effectively ignored
 and this method will create a VolatileImage without regard to
 ImageCapabilities constraints.
 The returned VolatileImage has
 a layout and color model that is closest to this native device
 configuration and can therefore be optimally blitted to this
 device.width - the width of the returned VolatileImageheight - the height of the returned VolatileImagecaps - the image capabilitiesVolatileImage whose data layout and color
 model is compatible with this GraphicsConfiguration.AWTException - if the supplied image capabilities could not
 be met by this graphics configurationpublic VolatileImage createCompatibleVolatileImage(int width, int height, ImageCapabilities caps, int transparency) throws AWTException
VolatileImage with a data layout and color model
 compatible with this GraphicsConfiguration, using
 the specified image capabilities and transparency value.
 If the caps parameter is null, it is effectively ignored
 and this method will create a VolatileImage without regard to
 ImageCapabilities constraints.
 The returned VolatileImage has
 a layout and color model that is closest to this native device
 configuration and can therefore be optimally blitted to this
 device.width - the width of the returned VolatileImageheight - the height of the returned VolatileImagecaps - the image capabilitiestransparency - the specified transparency modeVolatileImage whose data layout and color
 model is compatible with this GraphicsConfiguration.IllegalArgumentException - if the transparency is not a valid valueAWTException - if the supplied image capabilities could not
 be met by this graphics configurationTransparency.OPAQUE, 
Transparency.BITMASK, 
Transparency.TRANSLUCENT, 
Component.createVolatileImage(int, int)public abstract ColorModel getColorModel()
ColorModel associated with this
 GraphicsConfiguration.ColorModel object that is associated with
 this GraphicsConfiguration.public abstract ColorModel getColorModel(int transparency)
ColorModel associated with this
 GraphicsConfiguration that supports the specified
 transparency.transparency - the specified transparency modeColorModel object that is associated with
 this GraphicsConfiguration and supports the
 specified transparency or null if the transparency is not a valid
 value.Transparency.OPAQUE, 
Transparency.BITMASK, 
Transparency.TRANSLUCENTpublic abstract AffineTransform getDefaultTransform()
AffineTransform for this
 GraphicsConfiguration. This
 AffineTransform is typically the Identity transform
 for most normal screens.  The default AffineTransform
 maps coordinates onto the device such that 72 user space
 coordinate units measure approximately 1 inch in device
 space.  The normalizing transform can be used to make
 this mapping more exact.  Coordinates in the coordinate space
 defined by the default AffineTransform for screen and
 printer devices have the origin in the upper left-hand corner of
 the target region of the device, with X coordinates
 increasing to the right and Y coordinates increasing downwards.
 For image buffers not associated with a device, such as those not
 created by createCompatibleImage,
 this AffineTransform is the Identity transform.AffineTransform for this
 GraphicsConfiguration.public abstract AffineTransform getNormalizingTransform()
AffineTransform that can be concatenated
 with the default AffineTransform
 of a GraphicsConfiguration so that 72 units in user
 space equals 1 inch in device space.
 
 For a particular Graphics2D, g, one
 can reset the transformation to create
 such a mapping by using the following pseudocode:
 
      GraphicsConfiguration gc = g.getDeviceConfiguration();
      g.setTransform(gc.getDefaultTransform());
      g.transform(gc.getNormalizingTransform());
 
 Note that sometimes this AffineTransform is identity,
 such as for printers or metafile output, and that this
 AffineTransform is only as accurate as the information
 supplied by the underlying system.  For image buffers not
 associated with a device, such as those not created by
 createCompatibleImage, this
 AffineTransform is the Identity transform
 since there is no valid distance measurement.AffineTransform to concatenate to the
 default AffineTransform so that 72 units in user
 space is mapped to 1 inch in device space.public abstract Rectangle getBounds()
GraphicsConfiguration
 in the device coordinates. In a multi-screen environment
 with a virtual device, the bounds can have negative X
 or Y origins.GraphicsConfiguration.public BufferCapabilities getBufferCapabilities()
GraphicsConfiguration.public ImageCapabilities getImageCapabilities()
GraphicsConfiguration.public boolean isTranslucencyCapable()
GraphicsConfiguration supports
 the PERPIXEL_TRANSLUCENT kind of translucency.Window.setBackground(Color) Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2023, Oracle and/or its affiliates.  All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.