JavaTM 2 Platform
Standard Ed. 5.0

java.awt
类 GraphicsDevice

java.lang.Object
  继承者 java.awt.GraphicsDevice

public abstract class GraphicsDevice
extends Object

GraphicsDevice 类描述了可以在特殊图形环境中使用的图形设备。这些设备包括屏幕和打印机设备。注意,在 GraphicsEnvironment 实例中可以有许多屏幕和许多打印机。每个图形设备都有一个或多个与之相关的 GraphicsConfiguration 对象。这些对象指定了可以使用 GraphicsDevice 的不同配置。

在多屏幕环境中,GraphicsConfiguration 对象可用于在多屏幕上呈现组件。以下代码示例演示了如何在 GraphicsEnvironment 中针对每个屏幕设备的每个 GraphicsConfiguration 创建 JFrame 对象。

   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();
      }
   }
 

另请参见:
GraphicsEnvironment, GraphicsConfiguration

字段摘要
static int TYPE_IMAGE_BUFFER
          设备为图像缓冲区。
static int TYPE_PRINTER
          设备为打印机。
static int TYPE_RASTER_SCREEN
          设备为光栅屏幕。
 
构造方法摘要
protected GraphicsDevice()
          这是一个无法直接实例化的抽象类。
 
方法摘要
 int getAvailableAcceleratedMemory()
          此方法返回此设备上加速内存中可用的字节数。
 GraphicsConfiguration getBestConfiguration(GraphicsConfigTemplate gct)
          返回通过了 GraphicsConfigTemplate 中定义的标准的可能“最佳”配置。
abstract  GraphicsConfiguration[] getConfigurations()
          返回与此 GraphicsDevice 相关的所有 GraphicsConfiguration 对象。
abstract  GraphicsConfiguration getDefaultConfiguration()
          返回与此 GraphicsDevice 相关的默认 GraphicsConfiguration
 DisplayMode getDisplayMode()
          返回此 GraphicsDevice 的当前显示模式。
 DisplayMode[] getDisplayModes()
          返回此 GraphicsDevice 可用的所有显示模式。
 Window getFullScreenWindow()
          如果设备处于全屏模式,则返回表示全屏窗口的 Window 对象。
abstract  String getIDstring()
          返回与此 GraphicsDevice 相关的标识字符串。
abstract  int getType()
          返回此 GraphicsDevice 的类型。
 boolean isDisplayChangeSupported()
          如果此 GraphicsDevice 支持低层显示更改,则返回 true
 boolean isFullScreenSupported()
          如果此 GraphicsDevice 支持全屏独占模式,则返回 true
 void setDisplayMode(DisplayMode dm)
          设置此图形设备的显示模式。
 void setFullScreenWindow(Window w)
          进入全屏模式,或返回窗口化模式。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

TYPE_RASTER_SCREEN

public static final int TYPE_RASTER_SCREEN
设备为光栅屏幕。

另请参见:
常量字段值

TYPE_PRINTER

public static final int TYPE_PRINTER
设备为打印机。

另请参见:
常量字段值

TYPE_IMAGE_BUFFER

public static final int TYPE_IMAGE_BUFFER
设备为图像缓冲区。此缓冲区可驻留在设备或系统内存中,但用户无法实际看到它。

另请参见:
常量字段值
构造方法详细信息

GraphicsDevice

protected GraphicsDevice()
这是一个无法直接实例化的抽象类。必须从合适的工厂或查询方法中获取实例。

另请参见:
GraphicsEnvironment.getScreenDevices(), GraphicsEnvironment.getDefaultScreenDevice(), GraphicsConfiguration.getDevice()
方法详细信息

getType

public abstract int getType()
返回此 GraphicsDevice 的类型。

返回:
GraphicsDevice 的类型,可以是 TYPE_RASTER_SCREEN、TYPE_PRINTER 或 TYPE_IMAGE_BUFFER。
另请参见:
TYPE_RASTER_SCREEN, TYPE_PRINTER, TYPE_IMAGE_BUFFER

getIDstring

public abstract String getIDstring()
返回与此 GraphicsDevice 相关的标识字符串。

GraphicsEnvironment 中,某个特殊程序可能使用多个 GraphicsDevice。此方法返回一个标识本地 GraphicsEnvironment 中的特殊 GraphicsDeviceString。尽管没有设置此 String 的公共方法,但程序员可以在调试时使用此 String。JavaTM 运行时环境供应商可以格式化 String 的返回值。要确定如何解释 String 值,请与您的 Java 运行时供应商联系。要查找谁是供应商,可以从程序中使用“java.vendor”调用 System 类的 getProperty 方法。

返回:
一个作为此 GraphicsDevice 标识的 String

getConfigurations

public abstract GraphicsConfiguration[] getConfigurations()
返回与此 GraphicsDevice 相关的所有 GraphicsConfiguration 对象。

返回:
一个与此 GraphicsDevice 相关的 GraphicsConfiguration 对象的数组。

getDefaultConfiguration

public abstract GraphicsConfiguration getDefaultConfiguration()
返回与此 GraphicsDevice 相关的默认 GraphicsConfiguration

返回:
GraphicsDevice 的默认 GraphicsConfiguration

getBestConfiguration

public GraphicsConfiguration getBestConfiguration(GraphicsConfigTemplate gct)
返回通过了 GraphicsConfigTemplate 中定义的标准的可能“最佳”配置。

参数:
gct - 用于获取有效 GraphicsConfigurationGraphicsConfigTemplate 对象
返回:
一个通过了指定 GraphicsConfigTemplate 中定义的标准的 GraphicsConfiguration
另请参见:
GraphicsConfigTemplate

isFullScreenSupported

public boolean isFullScreenSupported()
如果此 GraphicsDevice 支持全屏独占模式,则返回 true

返回:
此图形设备是否可以使用全屏独占模式
从以下版本开始:
1.4

setFullScreenWindow

public void setFullScreenWindow(Window w)
进入全屏模式,或返回窗口化模式。

如果 isFullScreenSupported 返回 true,则全屏模式被视为独占,这意味着:

如果 isFullScreenSupported 返回 false,则通过将窗口大小调整为屏幕大小、定位在 (0,0) 来模拟全屏独占模式。

当进入全屏独占模式时,如果看不到作为全屏窗口使用的窗口,此方法将会使其可见。当返回到窗口化模式时,窗口仍将保持可见。

当从独占全屏窗口模式返回到窗口化模式时,任何调用 setDisplayMode 做出的显示更改都将自动恢复到它的原始状态。

参数:
w - 一个用作全屏窗口的窗口;如果返回到窗口化模式,则为 null。一些平台希望全屏窗口成为顶层组件(例如,Frame);因此这里最好使用 Frame,而不用 Window。
从以下版本开始:
1.4
另请参见:
isFullScreenSupported(), getFullScreenWindow(), setDisplayMode(java.awt.DisplayMode), Component.enableInputMethods(boolean), Component.setVisible(boolean)

getFullScreenWindow

public Window getFullScreenWindow()
如果设备处于全屏模式,则返回表示全屏窗口的 Window 对象。

返回:
全屏窗口,如果设备未在全屏模式,则返回 null
从以下版本开始:
1.4
另请参见:
setFullScreenWindow(Window)

isDisplayChangeSupported

public boolean isDisplayChangeSupported()
如果此 GraphicsDevice 支持低层显示更改,则返回 true

返回:
此图形设备是否支持低层显示更改。注意,这可能与全屏独占模式有关,也可能无关。
从以下版本开始:
1.4
另请参见:
setDisplayMode(java.awt.DisplayMode)

setDisplayMode

public void setDisplayMode(DisplayMode dm)
设置此图形设备的显示模式。这可能只在全屏独占模式中允许。

参数:
dm - 此图形设备的新显示模式
抛出:
IllegalArgumentException - 如果提供的 DisplayModenull,或者在 getDisplayModes 返回的数组中不可用
UnsupportedOperationException - 如果 isDisplayChangeSupported 返回 false
从以下版本开始:
1.4
另请参见:
getDisplayMode(), getDisplayModes(), isDisplayChangeSupported()

getDisplayMode

public DisplayMode getDisplayMode()
返回此 GraphicsDevice 的当前显示模式。

返回:
此图形设备的当前显示模式。
从以下版本开始:
1.4
另请参见:
setDisplayMode(DisplayMode)

getDisplayModes

public DisplayMode[] getDisplayModes()
返回此 GraphicsDevice 可用的所有显示模式。

返回:
此图形设备可用的所有显示模式。
从以下版本开始:
1.4

getAvailableAcceleratedMemory

public int getAvailableAcceleratedMemory()
此方法返回此设备上加速内存中可用的字节数。某些图像在加速内存中是按先来先服务的方式创建或缓存。在某些操作系统中,此内存为有限资源。调用此方法并慎重安排图像的创建和刷新能够使应用程序最有效地使用这些有限的资源。
注意,返回数是可用内存数量的快照;将某些图像分配到该内存中可能仍然存在问题。例如,根据操作系统、驱动程序、内存配置和线程情况的不同,给定的图像可能无法使用报告的全部内存空间。对于与 VolatileImage 相关的 ImageCapabilities 对象,还有更多的查询方法,可用于确定是否在加速内存中创建一个特殊的 VolatileImage。

返回:
加速内存中可用的字节数。返回值为负指示加速内存无限制。
另请参见:
VolatileImage.flush(), ImageCapabilities.isAccelerated()

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策