GraphicsConfiguration (Java Platform SE 8 ) (original) (raw)
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, GraphicsConfiguration
s 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, 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 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 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());
}
}