Class GraphicsConfiguration

java.lang.Object
java.awt.GraphicsConfiguration

public abstract classGraphicsConfigurationextendsObject
TheGraphicsConfiguration class describes the characteristics of a graphics destination such as a printer or monitor. There can be manyGraphicsConfiguration 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 differentGraphicsConfiguration. 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 theGraphicsConfiguration objects are relative to the virtual coordinate system. When setting the location of a component, usegetBounds to get the bounds of the desiredGraphicsConfiguration and offset the location with the coordinates of theGraphicsConfiguration, 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, callgetBounds on all of theGraphicsConfiguration 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 usegetBounds to determine the bounds of the virtual device. To do this, first callgetBounds on all of theGraphicsConfiguration objects in your system. Then calculate the union of all of the bounds returned from the calls togetBounds. 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());          }      }

See Also:
  • Constructor Details

  • Method Details

    • getDevice

      public abstract GraphicsDevice getDevice()
      Returns theGraphicsDevice associated with thisGraphicsConfiguration.
      Returns:
      aGraphicsDevice object that is associated with thisGraphicsConfiguration.
    • createCompatibleImage

      public BufferedImage createCompatibleImage(int width, int height)
      Returns aBufferedImage with a data layout and color model compatible with thisGraphicsConfiguration. This method has nothing to do with memory-mapping a device. The returnedBufferedImage has a layout and color model that is closest to this native device configuration and can therefore be optimally blitted to this device.
      Parameters:
      width - the width of the returnedBufferedImage
      height - the height of the returnedBufferedImage
      Returns:
      aBufferedImage whose data layout and color model is compatible with thisGraphicsConfiguration.
    • createCompatibleImage

      public BufferedImage createCompatibleImage(int width, int height, int transparency)
      Returns aBufferedImage that supports the specified transparency and has a data layout and color model compatible with thisGraphicsConfiguration. This method has nothing to do with memory-mapping a device. The returnedBufferedImage has a layout and color model that can be optimally blitted to a device with thisGraphicsConfiguration.
      Parameters:
      width - the width of the returnedBufferedImage
      height - the height of the returnedBufferedImage
      transparency - the specified transparency mode
      Returns:
      aBufferedImage whose data layout and color model is compatible with thisGraphicsConfiguration and also supports the specified transparency.
      Throws:
      IllegalArgumentException - if the transparency is not a valid value
      See Also:
    • createCompatibleVolatileImage

      public VolatileImage createCompatibleVolatileImage(int width, int height)
      Returns aVolatileImage with a data layout and color model compatible with thisGraphicsConfiguration. The returnedVolatileImage may have data that is stored optimally for the underlying graphics device and may therefore benefit from platform-specific rendering acceleration.
      Parameters:
      width - the width of the returnedVolatileImage
      height - the height of the returnedVolatileImage
      Returns:
      aVolatileImage whose data layout and color model is compatible with thisGraphicsConfiguration.
      Since:
      1.4
      See Also:
    • createCompatibleVolatileImage

      public VolatileImage createCompatibleVolatileImage(int width, int height, int transparency)
      Returns aVolatileImage with a data layout and color model compatible with thisGraphicsConfiguration. The returnedVolatileImage may have data that is stored optimally for the underlying graphics device and may therefore benefit from platform-specific rendering acceleration.
      Parameters:
      width - the width of the returnedVolatileImage
      height - the height of the returnedVolatileImage
      transparency - the specified transparency mode
      Returns:
      aVolatileImage whose data layout and color model is compatible with thisGraphicsConfiguration.
      Throws:
      IllegalArgumentException - if the transparency is not a valid value
      Since:
      1.5
      See Also:
    • createCompatibleVolatileImage

      public VolatileImage createCompatibleVolatileImage(int width, int height,ImageCapabilities caps) throwsAWTException
      Returns aVolatileImage with a data layout and color model compatible with thisGraphicsConfiguration, using the specified image capabilities. If thecaps parameter is null, it is effectively ignored and this method will create a VolatileImage without regard toImageCapabilities constraints. The returnedVolatileImage has a layout and color model that is closest to this native device configuration and can therefore be optimally blitted to this device.
      Parameters:
      width - the width of the returnedVolatileImage
      height - the height of the returnedVolatileImage
      caps - the image capabilities
      Returns:
      aVolatileImage whose data layout and color model is compatible with thisGraphicsConfiguration.
      Throws:
      AWTException - if the supplied image capabilities could not be met by this graphics configuration
      Since:
      1.4
    • createCompatibleVolatileImage

      public VolatileImage createCompatibleVolatileImage(int width, int height,ImageCapabilities caps, int transparency) throwsAWTException
      Returns aVolatileImage with a data layout and color model compatible with thisGraphicsConfiguration, using the specified image capabilities and transparency value. If thecaps parameter is null, it is effectively ignored and this method will create a VolatileImage without regard toImageCapabilities constraints. The returnedVolatileImage has a layout and color model that is closest to this native device configuration and can therefore be optimally blitted to this device.
      Parameters:
      width - the width of the returnedVolatileImage
      height - the height of the returnedVolatileImage
      caps - the image capabilities
      transparency - the specified transparency mode
      Returns:
      aVolatileImage whose data layout and color model is compatible with thisGraphicsConfiguration.
      Throws:
      IllegalArgumentException - if the transparency is not a valid value
      AWTException - if the supplied image capabilities could not be met by this graphics configuration
      Since:
      1.5
      See Also:
    • getColorModel

      public abstract ColorModel getColorModel()
      Returns theColorModel associated with thisGraphicsConfiguration.
      Returns:
      aColorModel object that is associated with thisGraphicsConfiguration.
    • getColorModel

      public abstract ColorModel getColorModel(int transparency)
      Returns theColorModel associated with thisGraphicsConfiguration that supports the specified transparency.
      Parameters:
      transparency - the specified transparency mode
      Returns:
      aColorModel object that is associated with thisGraphicsConfiguration and supports the specified transparency or null if the transparency is not a valid value.
      See Also:
    • getDefaultTransform

      public abstract AffineTransform getDefaultTransform()
      Returns the defaultAffineTransform for thisGraphicsConfiguration. ThisAffineTransform is typically the Identity transform for most normal screens. The defaultAffineTransform 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 defaultAffineTransform 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 bycreateCompatibleImage, thisAffineTransform is the Identity transform.
      Returns:
      the defaultAffineTransform for thisGraphicsConfiguration.
    • getNormalizingTransform

      public abstract AffineTransform getNormalizingTransform()
      Returns anAffineTransform that can be concatenated with the defaultAffineTransform of aGraphicsConfiguration so that 72 units in user space equals 1 inch in device space.

      For a particularGraphics2D, 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 thisAffineTransform is identity, such as for printers or metafile output, and that thisAffineTransform 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 bycreateCompatibleImage, thisAffineTransform is the Identity transform since there is no valid distance measurement.

      Returns:
      anAffineTransform to concatenate to the defaultAffineTransform so that 72 units in user space is mapped to 1 inch in device space.
    • getBounds

      public abstract Rectangle getBounds()
      Returns the bounds of theGraphicsConfiguration in the device coordinates. In a multi-screen environment with a virtual device, the bounds can have negative X or Y origins.
      Returns:
      the bounds of the area covered by thisGraphicsConfiguration.
      Since:
      1.3
    • getBufferCapabilities

      public BufferCapabilities getBufferCapabilities()
      Returns the buffering capabilities of thisGraphicsConfiguration.
      Returns:
      the buffering capabilities of this graphics configuration object
      Since:
      1.4
    • getImageCapabilities

      public ImageCapabilities getImageCapabilities()
      Returns the image capabilities of thisGraphicsConfiguration.
      Returns:
      the image capabilities of this graphics configuration object
      Since:
      1.4
    • isTranslucencyCapable

      public boolean isTranslucencyCapable()
      Returns whether thisGraphicsConfiguration supports thePERPIXEL_TRANSLUCENT kind of translucency.
      Returns:
      whether the given GraphicsConfiguration supports the translucency effects.
      Since:
      1.7
      See Also: