java.lang.Object | |
↳ | java.awt.GraphicsDevice |
Known Direct Subclasses |
The GraphicsDevice
class describes the graphics devices
that might be available in a particular graphics environment. These
include screen and printer devices. Note that there can be many screens
and many printers in an instance of GraphicsEnvironment
. Each
graphics device has one or more GraphicsConfiguration
objects
associated with it. These objects specify the different configurations
in which the GraphicsDevice
can be used.
In a multi-screen environment, the GraphicsConfiguration
objects can be used to render components on multiple screens. The
following code sample demonstrates how to create a JFrame
object for each GraphicsConfiguration
on each screen
device in the GraphicsEnvironment
:
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++) { JFrame f = new JFrame(gs[j].getDefaultConfiguration()); Canvas c = new Canvas(gc[i]); Rectangle gcBounds = gc[i].getBounds(); int xoffs = gcBounds.x; int yoffs = gcBounds.y; f.getContentPane().add(c); f.setLocation((i*50)+xoffs, (i*60)+yoffs); f.show(); } }
For more information on full-screen exclusive mode API, see the Full-Screen Exclusive Mode API Tutorial.
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
int | TYPE_IMAGE_BUFFER | Device is an image buffer. | |||||||||
int | TYPE_PRINTER | Device is a printer. | |||||||||
int | TYPE_RASTER_SCREEN | Device is a raster screen. |
Protected Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
This is an abstract class that cannot be instantiated directly.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
This method returns the number of bytes available in
accelerated memory on this device.
| |||||||||||
Returns the "best" configuration possible that passes the
criteria defined in the
GraphicsConfigTemplate . | |||||||||||
Returns all of the
GraphicsConfiguration
objects associated with this GraphicsDevice . | |||||||||||
Returns the default
GraphicsConfiguration
associated with this GraphicsDevice . | |||||||||||
Returns the current display mode of this
GraphicsDevice . | |||||||||||
Returns all display modes available for this
GraphicsDevice . | |||||||||||
Returns the
Window object representing the
full-screen window if the device is in full-screen mode. | |||||||||||
Returns the identification string associated with this
GraphicsDevice . | |||||||||||
Returns the type of this
GraphicsDevice . | |||||||||||
Returns
true if this GraphicsDevice
supports low-level display changes. | |||||||||||
Returns
true if this GraphicsDevice
supports full-screen exclusive mode. | |||||||||||
Sets the display mode of this graphics device.
| |||||||||||
Enter full-screen mode, or return to windowed mode.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
|
Device is an image buffer. This buffer can reside in device or system memory but it is not physically viewable by the user.
Device is a printer.
Device is a raster screen.
This is an abstract class that cannot be instantiated directly. Instances must be obtained from a suitable factory or query method.
This method returns the number of bytes available in
accelerated memory on this device.
Some images are created or cached
in accelerated memory on a first-come,
first-served basis. On some operating systems,
this memory is a finite resource. Calling this method
and scheduling the creation and flushing of images carefully may
enable applications to make the most efficient use of
that finite resource.
Note that the number returned is a snapshot of how much
memory is available; some images may still have problems
being allocated into that memory. For example, depending
on operating system, driver, memory configuration, and
thread situations, the full extent of the size reported
may not be available for a given image. There are further
inquiry methods on the ImageCapabilities
object
associated with a VolatileImage that can be used to determine
whether a particular VolatileImage has been created in accelerated
memory.
Returns the "best" configuration possible that passes the
criteria defined in the GraphicsConfigTemplate
.
gct | the GraphicsConfigTemplate object
used to obtain a valid GraphicsConfiguration |
---|
GraphicsConfiguration
that passes
the criteria defined in the specified
GraphicsConfigTemplate
.Returns all of the GraphicsConfiguration
objects associated with this GraphicsDevice
.
GraphicsConfiguration
objects that are associated with this
GraphicsDevice
.
Returns the default GraphicsConfiguration
associated with this GraphicsDevice
.
GraphicsConfiguration
of this GraphicsDevice
.
Returns the current display mode of this
GraphicsDevice
.
The returned display mode is allowed to have a refresh rate
REFRESH_RATE_UNKNOWN
if it is indeterminate.
Likewise, the returned display mode is allowed to have a bit depth
BIT_DEPTH_MULTI
if it is indeterminate or if multiple
bit depths are supported.
Returns all display modes available for this
GraphicsDevice
.
The returned display modes are allowed to have a refresh rate
REFRESH_RATE_UNKNOWN
if it is indeterminate.
Likewise, the returned display modes are allowed to have a bit depth
BIT_DEPTH_MULTI
if it is indeterminate or if multiple
bit depths are supported.
Returns the Window
object representing the
full-screen window if the device is in full-screen mode.
null
if the device is
not in full-screen mode.Returns the identification string associated with this
GraphicsDevice
.
A particular program might use more than one
GraphicsDevice
in a GraphicsEnvironment
.
This method returns a String
identifying a
particular GraphicsDevice
in the local
GraphicsEnvironment
. Although there is
no public method to set this String
, a programmer can
use the String
for debugging purposes. Vendors of
the JavaTM Runtime Environment can
format the return value of the String
. To determine
how to interpret the value of the String
, contact the
vendor of your Java Runtime. To find out who the vendor is, from
your program, call the
getProperty
method of the
System class with "java.vendor".
String
that is the identification
of this GraphicsDevice
.
Returns the type of this GraphicsDevice
.
GraphicsDevice
, which can
either be TYPE_RASTER_SCREEN, TYPE_PRINTER or TYPE_IMAGE_BUFFER.Returns true
if this GraphicsDevice
supports low-level display changes.
On some platforms low-level display changes may only be allowed in
full-screen exclusive mode (i.e., if isFullScreenSupported()
returns true
and the application has already entered
full-screen mode using setFullScreenWindow(Window)
).
Returns true
if this GraphicsDevice
supports full-screen exclusive mode.
If a SecurityManager is installed, its
checkPermission
method will be called
with AWTPermission("fullScreenExclusive")
.
isFullScreenSupported
returns true only if
that permission is granted.
Sets the display mode of this graphics device. This is only allowed
if isDisplayChangeSupported()
returns true
and may
require first entering full-screen exclusive mode using
setFullScreenWindow(Window)
providing that full-screen exclusive mode is
supported (i.e., isFullScreenSupported()
returns
true
).
The display mode must be one of the display modes returned by
getDisplayModes()
, with one exception: passing a display mode
with REFRESH_RATE_UNKNOWN
refresh rate will result in
selecting a display mode from the list of available display modes with
matching width, height and bit depth.
However, passing a display mode with BIT_DEPTH_MULTI
for bit depth is only allowed if such mode exists in the list returned by
getDisplayModes()
.
Example code:
Frame frame;
DisplayMode newDisplayMode;
GraphicsDevice gd;
// create a Frame, select desired DisplayMode from the list of modes
// returned by gd.getDisplayModes() ...
if (gd.isFullScreenSupported()) {
gd.setFullScreenWindow(frame);
} else {
// proceed in non-full-screen mode
frame.setSize(...);
frame.setLocation(...);
frame.setVisible(true);
}
if (gd.isDisplayChangeSupported()) {
gd.setDisplayMode(newDisplayMode);
}
dm | The new display mode of this graphics device. |
---|
IllegalArgumentException | if the DisplayMode
supplied is null , or is not available in the array returned
by getDisplayModes |
---|---|
UnsupportedOperationException | if
isDisplayChangeSupported returns false |
Enter full-screen mode, or return to windowed mode. The entered
full-screen mode may be either exclusive or simulated. Exclusive
mode is only available if isFullScreenSupported
returns true
.
Exclusive mode implies:
Component.enableInputMethods(false)
to make a component
a non-client of the input method framework.
Simulated full-screen mode resizes the window to the size of the screen and positions it at (0,0).
When entering full-screen mode, if the window to be used as the full-screen window is not visible, this method will make it visible. It will remain visible when returning to windowed mode.
When returning to windowed mode from an exclusive full-screen window, any
display changes made by calling setDisplayMode
are
automatically restored to their original state.
w | a window to use as the full-screen window; null
if returning to windowed mode. Some platforms expect the
fullscreen window to be a top-level component (i.e., a Frame);
therefore it is preferable to use a Frame here rather than a
Window. |
---|