模块 java.desktop
 java.awt

类 GraphicsEnvironment

java.lang.Object
java.awt.GraphicsEnvironment

public abstract class GraphicsEnvironment extends Object
GraphicsEnvironment 类描述了特定平台上 Java(tm) 应用程序可用的 GraphicsDevice 对象和 Font 对象的集合。此 GraphicsEnvironment 中的资源可能在本地或远程计算机上。 GraphicsDevice 对象可以是屏幕、打印机或图像缓冲区,并且是 Graphics2D 绘图方法的目标。每个 GraphicsDevice 都有许多与之关联的 GraphicsConfiguration 对象。这些对象指定可以使用 GraphicsDevice 的不同配置。
参见:
  • 构造方法详细信息

    • GraphicsEnvironment

      protected GraphicsEnvironment()
      这是一个抽象类,不能直接实例化。实例必须从合适的工厂或查询方法中获取。
  • 方法详情

    • getLocalGraphicsEnvironment

      public static GraphicsEnvironment  getLocalGraphicsEnvironment()
      返回本地 GraphicsEnvironment
      返回:
      本地GraphicsEnvironment
    • isHeadless

      public static boolean isHeadless()
      测试此环境是否支持显示器、键盘和鼠标。如果此方法返回 true,则会从依赖于显示器、键盘或鼠标的 Toolkit 和 GraphicsEnvironment 区域抛出 HeadlessException。
      返回:
      true 如果此环境不支持显示器、键盘和鼠标; false否则
      自从:
      1.4
      参见:
    • isHeadlessInstance

      public boolean isHeadlessInstance()
      返回此图形环境是否支持显示器、键盘和鼠标。如果返回 true,HeadlessException 将从依赖于显示器、键盘或鼠标的图形环境区域抛出。
      返回:
      true 该环境是否支持显示器、键盘和鼠标; false否则
      自从:
      1.4
      参见:
    • getScreenDevices

      public abstract GraphicsDevice [] getScreenDevices() throws HeadlessException
      返回所有屏幕 GraphicsDevice 对象的数组。
      返回:
      包含代表屏幕设备的所有 GraphicsDevice 对象的数组
      抛出:
      HeadlessException - 如果 isHeadless() 返回真
      参见:
    • getDefaultScreenDevice

      public abstract GraphicsDevice  getDefaultScreenDevice() throws HeadlessException
      返回默认屏幕 GraphicsDevice
      返回:
      代表默认屏幕设备的GraphicsDevice
      抛出:
      HeadlessException - 如果 isHeadless() 返回真
      参见:
    • createGraphics

      public abstract Graphics2D  createGraphics(BufferedImage  img)
      返回一个 Graphics2D 对象以渲染到指定的 BufferedImage 中。
      参数:
      img - 指定的 BufferedImage
      返回:
      一个 Graphics2D 用于渲染到指定的 BufferedImage
      抛出:
      NullPointerException - 如果 img 为空
    • getAllFonts

      public abstract Font [] getAllFonts()
      返回一个数组,其中包含此 GraphicsEnvironment 中所有可用字体的单点大小实例。典型用法是允许用户选择特定字体。然后,应用程序可以通过在所选实例上调用 deriveFont 方法来调整字体大小并设置各种字体属性。

      此方法为应用程序提供了对使用哪个 Font 实例呈现文本的最精确控制。如果此 GraphicsEnvironment 中的一种字体具有多个可编程变体,则数组中只会返回该 Font 的一个实例,其他变体必须由应用程序派生。

      如果此环境中的一种字体具有多种可编程变体,例如多母版字体,则在 Font 数组中仅返回该字体的一个实例。其他变体必须由应用程序导出。

      返回:
      Font 对象数组
      自从:
      1.2
      参见:
    • getAvailableFontFamilyNames

      public abstract String [] getAvailableFontFamilyNames()
      返回一个数组,其中包含此 GraphicsEnvironment 中针对默认locale本地化的所有字体系列的名称,由 Locale.getDefault() 返回。

      典型的用法是向用户展示以选择特定的姓氏。然后,应用程序可以在创建字体时指定此名称,并结合样式(例如粗体或斜体),使字体系统可以灵活地在同一字体系列的多种字体中选择自己的最佳匹配。

      返回:
      String 数组包含为默认locale本地化的字体系列名称,或者如果此locale不存在名称,则为合适的替代名称。
      自从:
      1.2
      参见:
    • getAvailableFontFamilyNames

      public abstract String [] getAvailableFontFamilyNames(Locale  l)
      返回一个数组,其中包含针对指定locale本地化的 GraphicsEnvironment 中所有字体系列的名称。

      典型的用法是向用户展示以选择特定的姓氏。然后,应用程序可以在创建字体时指定此名称,并结合样式(例如粗体或斜体),使字体系统可以灵活地在同一字体系列的多种字体中选择自己的最佳匹配。

      参数:
      l - 代表特定地理、政治或文化区域的 Locale 对象。指定 null 等同于指定 Locale.getDefault()
      返回:
      String 的数组,其中包含为指定的 Locale 本地化的字体系列名称,或者如果指定的locale不存在名称,则为合适的替代名称。
      自从:
      1.2
      参见:
    • registerFont

      public boolean registerFont(Font  font)
      注册一个创建Font 在这个 GraphicsEnvironment 中。创建的字体是通过调用 Font.createFont(int, java.io.InputStream) 返回的,或者是通过调用 Font.deriveFont(int, float) 从创建的字体派生的。为此类字体调用此方法后,它可用于按名称或姓氏构造新的 Font s,并在此应用程序或小程序的执行上下文中由 getAvailableFontFamilyNames() getAllFonts() 枚举。这意味着小程序无法以其他小程序可见的方式注册字体。

      此方法可能未注册字体并因此返回 false 的原因是:

      • 字体不是创建 Font .
      • 字体与此 GraphicsEnvironment 中已有的非创建 Font 冲突。例如,如果名称是系统字体的名称,或者是 Font 类文档中描述的逻辑字体。如果字体与系统字体具有相同的家族名称,它是否也可能发生冲突取决于实现。

        请注意,应用程序可以用新字体取代较早创建的字体的注册。

      参数:
      font - 要注册的字体
      返回:
      如果 font 在此 GraphicsEnvironment 中成功注册,则为真。
      抛出:
      NullPointerException - 如果 font 为空
      自从:
      1.6
    • preferLocaleFonts

      public void preferLocaleFonts()
      指示在逻辑字体到物理字体的map中对特定于区域设置的字体的首选项。调用此方法表明字体呈现应主要使用特定于主要书写系统的字体(由默认编码和初始默认区域设置指示的字体)。例如,如果主要书写系统是日语,则应尽可能使用日语字体呈现字符,而其他字体应仅用于日语字体没有字形的字符。

      调用此方法导致的字体渲染行为的实际变化取决于实现;它可能根本没有效果,或者请求的行为可能已经与默认行为相匹配。轻量级组件和对等组件中的字体渲染行为可能不同。由于调用此方法需要不同的字体,因此客户端应该期望不同的指标,并且可能需要重新计算窗口大小和布局。因此,应在用户界面初始化之前调用此方法。

      自从:
      1.5
    • preferProportionalFonts

      public void preferProportionalFonts()
      指示在逻辑字体到物理字体的map中比例字体优先于非比例字体(例如双行距 CJK 字体)。如果默认映射包含存在比例和非比例变体的字体,则调用此方法指示映射应使用比例变体。

      调用此方法导致的字体渲染行为的实际变化取决于实现;它可能根本没有效果。轻量级组件和对等组件中的字体渲染行为可能不同。由于调用此方法需要不同的字体,因此客户端应该期望不同的指标,并且可能需要重新计算窗口大小和布局。因此,应在用户界面初始化之前调用此方法。

      自从:
      1.5
    • getCenterPoint

      public Point  getCenterPoint() throws HeadlessException
      返回 Windows 应居中的点。建议使用 getMaximumWindowBounds() 检查居中窗口以确保它们适合可用显示区域。
      返回:
      Windows 应该居中的点
      抛出:
      HeadlessException - 如果 isHeadless() 返回真
      自从:
      1.4
      参见:
    • getMaximumWindowBounds

      public Rectangle  getMaximumWindowBounds() throws HeadlessException
      返回居中窗口的最大边界。这些边界说明了本机窗口系统中的对象,例如任务栏和菜单栏。返回的边界将驻留在单个显示器上,但有一个异常:在 Windows 应在所有显示器上居中的多屏幕系统上,此方法返回整个显示区域的边界。

      要获取单个显示器的可用范围,请使用 GraphicsConfiguration.getBounds()Toolkit.getScreenInsets()

      返回:
      居中窗口的最大边界
      抛出:
      HeadlessException - 如果 isHeadless() 返回真
      自从:
      1.4
      参见: