|
Java™ Platform Standard Ed. 6 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.awt.GraphicsDevice
public abstract class GraphicsDevice
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.
GraphicsEnvironment
,
GraphicsConfiguration
Field Summary | |
---|---|
static int |
TYPE_IMAGE_BUFFER
Device is an image buffer. |
static int |
TYPE_PRINTER
Device is a printer. |
static int |
TYPE_RASTER_SCREEN
Device is a raster screen. |
Constructor Summary | |
---|---|
protected |
GraphicsDevice()
This is an abstract class that cannot be instantiated directly. |
Method Summary | |
---|---|
int |
getAvailableAcceleratedMemory()
This method returns the number of bytes available in accelerated memory on this device. |
GraphicsConfiguration |
getBestConfiguration(GraphicsConfigTemplate gct)
Returns the "best" configuration possible that passes the criteria defined in the GraphicsConfigTemplate . |
abstract GraphicsConfiguration[] |
getConfigurations()
Returns all of the GraphicsConfiguration
objects associated with this GraphicsDevice . |
abstract GraphicsConfiguration |
getDefaultConfiguration()
Returns the default GraphicsConfiguration
associated with this GraphicsDevice . |
DisplayMode |
getDisplayMode()
Returns the current display mode of this GraphicsDevice . |
DisplayMode[] |
getDisplayModes()
Returns all display modes available for this GraphicsDevice . |
Window |
getFullScreenWindow()
Returns the Window object representing the
full-screen window if the device is in full-screen mode. |
abstract String |
getIDstring()
Returns the identification string associated with this GraphicsDevice . |
abstract int |
getType()
Returns the type of this GraphicsDevice . |
boolean |
isDisplayChangeSupported()
Returns true if this GraphicsDevice
supports low-level display changes. |
boolean |
isFullScreenSupported()
Returns true if this GraphicsDevice
supports full-screen exclusive mode. |
void |
setDisplayMode(DisplayMode dm)
Sets the display mode of this graphics device. |
void |
setFullScreenWindow(Window w)
Enter full-screen mode, or return to windowed mode. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int TYPE_RASTER_SCREEN
public static final int TYPE_PRINTER
public static final int TYPE_IMAGE_BUFFER
Constructor Detail |
---|
protected GraphicsDevice()
GraphicsEnvironment.getScreenDevices()
,
GraphicsEnvironment.getDefaultScreenDevice()
,
GraphicsConfiguration.getDevice()
Method Detail |
---|
public abstract int getType()
GraphicsDevice
.
GraphicsDevice
, which can
either be TYPE_RASTER_SCREEN, TYPE_PRINTER or TYPE_IMAGE_BUFFER.TYPE_RASTER_SCREEN
,
TYPE_PRINTER
,
TYPE_IMAGE_BUFFER
public abstract String getIDstring()
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
.public abstract GraphicsConfiguration[] getConfigurations()
GraphicsConfiguration
objects associated with this GraphicsDevice
.
GraphicsConfiguration
objects that are associated with this
GraphicsDevice
.public abstract GraphicsConfiguration getDefaultConfiguration()
GraphicsConfiguration
associated with this GraphicsDevice
.
GraphicsConfiguration
of this GraphicsDevice
.public GraphicsConfiguration getBestConfiguration(GraphicsConfigTemplate gct)
GraphicsConfigTemplate
.
gct
- the GraphicsConfigTemplate
object
used to obtain a valid GraphicsConfiguration
GraphicsConfiguration
that passes
the criteria defined in the specified
GraphicsConfigTemplate
.GraphicsConfigTemplate
public boolean isFullScreenSupported()
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.
AWTPermission
public void setFullScreenWindow(Window w)
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.isFullScreenSupported()
,
getFullScreenWindow()
,
setDisplayMode(java.awt.DisplayMode)
,
Component.enableInputMethods(boolean)
,
Component.setVisible(boolean)
public Window getFullScreenWindow()
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.setFullScreenWindow(Window)
public boolean isDisplayChangeSupported()
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(java.awt.Window)
).
isFullScreenSupported()
,
setDisplayMode(java.awt.DisplayMode)
,
setFullScreenWindow(java.awt.Window)
public void setDisplayMode(DisplayMode dm)
isDisplayChangeSupported()
returns true
and may
require first entering full-screen exclusive mode using
setFullScreenWindow(java.awt.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 DisplayMode.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 DisplayMode.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
getDisplayMode()
,
getDisplayModes()
,
isDisplayChangeSupported()
public DisplayMode getDisplayMode()
GraphicsDevice
.
The returned display mode is allowed to have a refresh rate
DisplayMode.REFRESH_RATE_UNKNOWN
if it is indeterminate.
Likewise, the returned display mode is allowed to have a bit depth
DisplayMode.BIT_DEPTH_MULTI
if it is indeterminate or if multiple
bit depths are supported.
setDisplayMode(DisplayMode)
public DisplayMode[] getDisplayModes()
GraphicsDevice
.
The returned display modes are allowed to have a refresh rate
DisplayMode.REFRESH_RATE_UNKNOWN
if it is indeterminate.
Likewise, the returned display modes are allowed to have a bit depth
DisplayMode.BIT_DEPTH_MULTI
if it is indeterminate or if multiple
bit depths are supported.
public int getAvailableAcceleratedMemory()
ImageCapabilities
object
associated with a VolatileImage that can be used to determine
whether a particular VolatileImage has been created in accelerated
memory.
Image.flush()
,
ImageCapabilities.isAccelerated()
|
Java™ Platform Standard Ed. 6 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.