The 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
GraphicsConfiguration.getBounds() 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());
}
}
createCompatibleImage(int width, int height, int transparency) Returns a BufferedImage that supports the specified
transparency and has a data layout and color model
compatible with this GraphicsConfiguration.
createCompatibleVolatileImage(int width, int height, int transparency) Returns a
VolatileImage with a data layout and color model
compatible with this GraphicsConfiguration.
createCompatibleVolatileImage(int width, int height, ImageCapabilities caps, int transparency) Returns a
VolatileImage with a data layout and color model
compatible with this GraphicsConfiguration, using
the specified image capabilities and transparency value.
getNormalizingTransform() Returns a 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.
Returns a
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.
Parameters: width - the width of the returned BufferedImage Parameters: height - the height of the returned BufferedImage a BufferedImage whose data layout and colormodel is compatible with this GraphicsConfiguration.
createCompatibleImage
publicBufferedImage createCompatibleImage(int width, int height, int transparency)(Code)
Returns a 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.
Parameters: width - the width of the returned BufferedImage Parameters: height - the height of the returned BufferedImage Parameters: transparency - the specified transparency mode a BufferedImage whose data layout and color model is compatible with this GraphicsConfigurationand also supports the specified transparency. throws: IllegalArgumentException - if the transparency is not a valid value See Also:Transparency.OPAQUE See Also:Transparency.BITMASK See Also:Transparency.TRANSLUCENT
createCompatibleVolatileImage
publicVolatileImage createCompatibleVolatileImage(int width, int height)(Code)
Returns a
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.
Parameters: width - the width of the returned VolatileImage Parameters: height - the height of the returned VolatileImage a VolatileImage whose data layout and colormodel is compatible with this GraphicsConfiguration. See Also:Component.createVolatileImage(intint) since: 1.4
createCompatibleVolatileImage
publicVolatileImage createCompatibleVolatileImage(int width, int height, int transparency)(Code)
Returns a
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.
Parameters: width - the width of the returned VolatileImage Parameters: height - the height of the returned VolatileImage Parameters: transparency - the specified transparency mode a VolatileImage whose data layout and colormodel is compatible with this GraphicsConfiguration. throws: IllegalArgumentException - if the transparency is not a valid value See Also:Transparency.OPAQUE See Also:Transparency.BITMASK See Also:Transparency.TRANSLUCENT See Also:Component.createVolatileImage(intint) since: 1.5
Returns a
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.
a VolatileImage whose data layout and color model is compatible with this GraphicsConfiguration. Parameters: width - the width of the returned VolatileImage Parameters: height - the height of the returned VolatileImage Parameters: caps - the image capabilities exception: AWTException - if the supplied image capabilities could not be met by this graphics configuration since: 1.4
Returns a
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.
Parameters: width - the width of the returned VolatileImage Parameters: height - the height of the returned VolatileImage Parameters: caps - the image capabilities Parameters: transparency - the specified transparency mode a VolatileImage whose data layout and colormodel is compatible with this GraphicsConfiguration. See Also:Transparency.OPAQUE See Also:Transparency.BITMASK See Also:Transparency.TRANSLUCENT throws: IllegalArgumentException - if the transparency is not a valid value exception: AWTException - if the supplied image capabilities could notbe met by this graphics configuration See Also:Component.createVolatileImage(intint) since: 1.5
Returns the bounds of the GraphicsConfiguration
in the device coordinates. In a multi-screen environment
with a virtual device, the bounds can have negative X
or Y origins.
the bounds of the area covered by thisGraphicsConfiguration. since: 1.3
Returns the ColorModel associated with this
GraphicsConfiguration that supports the specified
transparency.
Parameters: transparency - the specified transparency mode a ColorModel object that is associated withthis GraphicsConfiguration and supports the specified transparency or null if the transparency is not a validvalue. See Also:Transparency.OPAQUE See Also:Transparency.BITMASK See Also:Transparency.TRANSLUCENT
Returns the default
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.
the default AffineTransform for thisGraphicsConfiguration.
Returns a 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:
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.
an AffineTransform to concatenate to thedefault AffineTransform so that 72 units in userspace is mapped to 1 inch in device space.