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());
}
} - See Also:
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedThis is an abstract class that cannot be instantiated directly. -
Method Summary
Modifier and TypeMethodDescriptioncreateCompatibleImage(int width, int height) Returns aBufferedImagewith a data layout and color model compatible with thisGraphicsConfiguration.createCompatibleImage(int width, int height, int transparency) Returns aBufferedImagethat supports the specified transparency and has a data layout and color model compatible with thisGraphicsConfiguration.createCompatibleVolatileImage(int width, int height) Returns aVolatileImagewith a data layout and color model compatible with thisGraphicsConfiguration.createCompatibleVolatileImage(int width, int height, int transparency) Returns aVolatileImagewith a data layout and color model compatible with thisGraphicsConfiguration.createCompatibleVolatileImage(int width, int height, ImageCapabilities caps) Returns aVolatileImagewith a data layout and color model compatible with thisGraphicsConfiguration, using the specified image capabilities.createCompatibleVolatileImage(int width, int height, ImageCapabilities caps, int transparency) Returns aVolatileImagewith a data layout and color model compatible with thisGraphicsConfiguration, using the specified image capabilities and transparency value.abstract RectangleReturns the bounds of theGraphicsConfigurationin the device coordinates.Returns the buffering capabilities of thisGraphicsConfiguration.abstract ColorModelReturns theColorModelassociated with thisGraphicsConfiguration.abstract ColorModelgetColorModel(int transparency) Returns theColorModelassociated with thisGraphicsConfigurationthat supports the specified transparency.abstract AffineTransformReturns the defaultAffineTransformfor thisGraphicsConfiguration.abstract GraphicsDeviceReturns theGraphicsDeviceassociated with thisGraphicsConfiguration.Returns the image capabilities of thisGraphicsConfiguration.abstract AffineTransformReturns anAffineTransformthat can be concatenated with the defaultAffineTransformof aGraphicsConfigurationso that 72 units in user space equals 1 inch in device space.booleanReturns whether thisGraphicsConfigurationsupports thePERPIXEL_TRANSLUCENTkind of translucency.
-
Constructor Details
-
GraphicsConfiguration
protected GraphicsConfiguration()This is an abstract class that cannot be instantiated directly. Instances must be obtained from a suitable factory or query method.
-
-
Method Details
-
getDevice
Returns theGraphicsDeviceassociated with thisGraphicsConfiguration.- Returns:
- a
GraphicsDeviceobject that is associated with thisGraphicsConfiguration.
-
createCompatibleImage
Returns aBufferedImagewith a data layout and color model compatible with thisGraphicsConfiguration. This method has nothing to do with memory-mapping a device. The returnedBufferedImagehas 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 returnedBufferedImageheight- the height of the returnedBufferedImage- Returns:
- a
BufferedImagewhose data layout and color model is compatible with thisGraphicsConfiguration.
-
createCompatibleImage
Returns aBufferedImagethat 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 returnedBufferedImagehas a layout and color model that can be optimally blitted to a device with thisGraphicsConfiguration.- Parameters:
width- the width of the returnedBufferedImageheight- the height of the returnedBufferedImagetransparency- the specified transparency mode- Returns:
- a
BufferedImagewhose data layout and color model is compatible with thisGraphicsConfigurationand also supports the specified transparency. - Throws:
IllegalArgumentException- if the transparency is not a valid value- See Also:
-
createCompatibleVolatileImage
Returns aVolatileImagewith a data layout and color model compatible with thisGraphicsConfiguration. The returnedVolatileImagemay 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 returnedVolatileImageheight- the height of the returnedVolatileImage- Returns:
- a
VolatileImagewhose data layout and color model is compatible with thisGraphicsConfiguration. - Since:
- 1.4
- See Also:
-
createCompatibleVolatileImage
Returns aVolatileImagewith a data layout and color model compatible with thisGraphicsConfiguration. The returnedVolatileImagemay 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 returnedVolatileImageheight- the height of the returnedVolatileImagetransparency- the specified transparency mode- Returns:
- a
VolatileImagewhose 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) throws AWTException Returns aVolatileImagewith a data layout and color model compatible with thisGraphicsConfiguration, using the specified image capabilities. If thecapsparameter is null, it is effectively ignored and this method will create a VolatileImage without regard toImageCapabilitiesconstraints. The returnedVolatileImagehas 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 returnedVolatileImageheight- the height of the returnedVolatileImagecaps- the image capabilities- Returns:
- a
VolatileImagewhose 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) throws AWTException Returns aVolatileImagewith a data layout and color model compatible with thisGraphicsConfiguration, using the specified image capabilities and transparency value. If thecapsparameter is null, it is effectively ignored and this method will create a VolatileImage without regard toImageCapabilitiesconstraints. The returnedVolatileImagehas 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 returnedVolatileImageheight- the height of the returnedVolatileImagecaps- the image capabilitiestransparency- the specified transparency mode- Returns:
- a
VolatileImagewhose data layout and color model is compatible with thisGraphicsConfiguration. - Throws:
IllegalArgumentException- if the transparency is not a valid valueAWTException- if the supplied image capabilities could not be met by this graphics configuration- Since:
- 1.5
- See Also:
-
getColorModel
Returns theColorModelassociated with thisGraphicsConfiguration.- Returns:
- a
ColorModelobject that is associated with thisGraphicsConfiguration.
-
getColorModel
Returns theColorModelassociated with thisGraphicsConfigurationthat supports the specified transparency.- Parameters:
transparency- the specified transparency mode- Returns:
- a
ColorModelobject that is associated with thisGraphicsConfigurationand supports the specified transparency or null if the transparency is not a valid value. - See Also:
-
getDefaultTransform
Returns the defaultAffineTransformfor thisGraphicsConfiguration. ThisAffineTransformis typically the Identity transform for most normal screens. The defaultAffineTransformmaps 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 defaultAffineTransformfor 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, thisAffineTransformis the Identity transform.- Returns:
- the default
AffineTransformfor thisGraphicsConfiguration.
-
getNormalizingTransform
Returns anAffineTransformthat can be concatenated with the defaultAffineTransformof aGraphicsConfigurationso 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 thisAffineTransformis identity, such as for printers or metafile output, and that thisAffineTransformis 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, thisAffineTransformis the Identity transform since there is no valid distance measurement.- Returns:
- an
AffineTransformto concatenate to the defaultAffineTransformso that 72 units in user space is mapped to 1 inch in device space.
-
getBounds
Returns the bounds of theGraphicsConfigurationin 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 this
GraphicsConfiguration. - Since:
- 1.3
-
getBufferCapabilities
Returns the buffering capabilities of thisGraphicsConfiguration.- Returns:
- the buffering capabilities of this graphics configuration object
- Since:
- 1.4
-
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 thisGraphicsConfigurationsupports thePERPIXEL_TRANSLUCENTkind of translucency.- Returns:
- whether the given GraphicsConfiguration supports the translucency effects.
- Since:
- 1.7
- See Also:
-