模块  java.desktop
软件包  java.awt

Class GraphicsDevice


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

    在多屏幕环境中, GraphicsConfiguration对象可用于在多个屏幕上呈现组件。 下面的代码示例演示了如何创建一个JFrame为每个对象GraphicsConfiguration在每个屏幕设备上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(); } }  

    有关全屏独占模式API的更多信息,请参阅Full-Screen Exclusive Mode API Tutorial

    另请参见:
    GraphicsEnvironmentGraphicsConfiguration
    • 字段详细信息

      • 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
        设备是图像缓冲区。 此缓冲区可以驻留在设备或系统内存中,但用户无法在物理上查看。
        另请参见:
        常数字段值
    • 方法详细信息

      • getType

        public abstract int getType()
        返回此 GraphicsDevice的类型。
        结果
        GraphicsDevice的类型,可以是TYPE_RASTER_SCREEN,TYPE_PRINTER或TYPE_IMAGE_BUFFER。
        另请参见:
        TYPE_RASTER_SCREENTYPE_PRINTERTYPE_IMAGE_BUFFER
      • getIDstring

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

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

        结果
        a String是对此 GraphicsDevice的识别。
      • getConfigurations

        public abstract GraphicsConfiguration[] getConfigurations()
        返回与此 GraphicsDevice关联的所有 GraphicsConfiguration对象。
        结果
        GraphicsConfiguration与此 GraphicsDevice相关联的 GraphicsConfiguration对象的数组。
      • getDefaultConfiguration

        public abstract GraphicsConfiguration getDefaultConfiguration()
        返回默认 GraphicsConfiguration与此相关 GraphicsDevice
        结果
        默认 GraphicsConfiguration如此 GraphicsDevice
      • isFullScreenSupported

        public boolean isFullScreenSupported()
        如果GraphicsDevice支持全屏独占模式,则返回true 如果安装了SecurityManager,将使用AWTPermission("fullScreenExclusive")调用其checkPermission方法。 isFullScreenSupported仅在授予该权限isFullScreenSupported返回true。
        结果
        是否可以为此图形设备使用全屏独占模式
        从以下版本开始:
        1.4
        另请参见:
        AWTPermission
      • setFullScreenWindow

        public void setFullScreenWindow​(Window w)
        进入全屏模式,或返回到窗口模式。 输入的全屏模式可以是独占模式,也可以是模拟模式。 独家模式仅在isFullScreenSupported返回true可用。

        独家模式意味着:

        • Windows无法与全屏窗口重叠。 所有其他应用程序窗口将始终显示在Z顺序的全屏窗口下方。
        • 任何时候设备上只能有一个全屏窗口,因此在存在全屏窗口时调用此方法将导致现有的全屏窗口返回窗口模式。
        • 输入法窗口被禁用。 建议调用Component.enableInputMethods(false)使组件成为输入方法框架的非客户端。

        模拟的全屏模式将窗口放置并调整窗口大小到屏幕的最大可见区域。 然而,本机窗口系统可以修改请求的几何结构相关的数据,从而使Window对象放置和尺寸在接近地对应于桌面设置的方式。

        进入全屏模式时,如果无法看到要用作全屏窗口的窗口,则此方法将使其可见。 返回窗口模式时它将保持可见状态。

        进入全屏模式时,将为窗口重置所有半透明效果。 其形状设置为null ,不透明度值设置为1.0f,背景颜色alpha设置为255(完全不透明)。 返回窗口模式时,不会恢复这些值。

        它是未指定的和平台相关的装饰窗口如何在全屏模式下操作。 因此,建议使用setUndecorated方法关闭FrameDialog对象中的装饰。

        从专用全屏窗口返回窗口模式时,通过调用setDisplayMode进行的任何显示更改都将自动恢复到其原始状态。

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

        public Window getFullScreenWindow()
        如果设备处于全屏模式,则返回表示全屏窗口的 Window对象。
        结果
        全屏窗口,如果设备未处于全屏模式, null
        从以下版本开始:
        1.4
        另请参见:
        setFullScreenWindow(Window)
      • getDisplayModes

        public DisplayMode[] getDisplayModes()
        返回此GraphicsDevice可用的所有显示模式。 如果返回的显示模式不确定,则允许刷新率为DisplayMode.REFRESH_RATE_UNKNOWN 同样,如果返回的显示模式是不确定的或者如果支持多个位深度,则允许其具有位深度DisplayMode.BIT_DEPTH_MULTI
        结果
        此图形设备可用的所有显示模式。
        从以下版本开始:
        1.4
      • getAvailableAcceleratedMemory

        public int getAvailableAcceleratedMemory()
        此方法返回此设备上加速内存中可用的字节数。 某些图像以先到先得的方式在加速内存中创建或缓存。 在某些操作系统上,此内存是有限的资源。 调用此方法并仔细调度图像的创建和刷新可以使应用程序能够最有效地使用该有限资源。
        请注意,返回的数字是可用内存量的快照; 某些图像可能仍然有问题被分配到该内存中。 例如,根据操作系统,驱动程序,内存配置和线程情况,报告的大小的完整范围可能不适用于给定图像。 与VolatileImage关联的ImageCapabilities对象还有其他查询方法,可用于确定是否已在加速内存中创建特定的VolatileImage。
        结果
        加速内存中可用的字节数。 负返回值表示此GraphicsDevice上的加速内存量是不确定的。
        从以下版本开始:
        1.4
        另请参见:
        Image.flush()ImageCapabilities.isAccelerated()
      • isWindowTranslucencySupported

        public boolean isWindowTranslucencySupported​(GraphicsDevice.WindowTranslucency translucencyKind)
        返回此图形设备是否支持给定的半透明级别。
        参数
        translucencyKind - 一种半透明的支持
        结果
        是否支持给定的半透明类型
        从以下版本开始:
        1.7