java.awt

接口
异常
错误
java.lang.Object
  继承者 java.awt.GraphicsEnvironment

public abstract class GraphicsEnvironment
     
extends Object

GraphicsEnvironment 类描述了 Java(tm) 应用程序在特定平台上可用的 GraphicsDevice 对象和 Font 对象的集合。此 GraphicsEnvironment 中的资源可以是本地资源,也可以位于远程机器上。GraphicsDevice 对象可以是屏幕、打印机或图像缓冲区,并且都是 Graphics2D 绘图方法的目标。每个 GraphicsDevice 都有许多与之相关的 GraphicsConfiguration 对象。这些对象指定了使用 GraphicsDevice 所需的不同配置。

另请参见:
GraphicsDevice, GraphicsConfiguration

构造方法摘要
protected GraphicsEnvironment()
          这是一个抽象类,不能直接将其实例化。
 
方法摘要
abstract  Graphics2D createGraphics(BufferedImage img)
          返回一个呈现指定 BufferedImageGraphics2D 对象。
abstract  Font[] getAllFonts()
          返回一个数组,它包含此 GraphicsEnvironment 中所有可用字体的像素级实例。
abstract  String[] getAvailableFontFamilyNames()
          返回一个包含此 GraphicsEnvironment 中所有字体系列名称的数组,它针对默认语言环境进行了本地化,由 Locale.getDefault() 返回。
abstract  String[] getAvailableFontFamilyNames(Locale l)
          返回一个包含此 GraphicsEnvironment 中所有字体系列名称的数组,已针对默认语言环境对它进行了本地化。
 Point getCenterPoint()
          返回 Windows 应居中的点。
abstract  GraphicsDevice getDefaultScreenDevice()
          返回默认的屏幕 GraphicsDevice
static GraphicsEnvironment getLocalGraphicsEnvironment()
          返回本地 GraphicsEnvironment
 Rectangle getMaximumWindowBounds()
          返回居中 Windows 的最大边界。
abstract  GraphicsDevice[] getScreenDevices()
          返回所有屏幕 GraphicsDevice 对象组成的数组。
static boolean isHeadless()
          测试此环境是否支持显示器、键盘和鼠标。
 boolean isHeadlessInstance()
          返回此图形环境是否支持显示器、键盘和鼠标。
 void preferLocaleFonts()
          指示在逻辑字体到实际字体的映射关系中特定于语言环境的字体的首选项。
 void preferProportionalFonts()
          指示在逻辑字体到实际字体的映射关系中用于均衡字体和非均衡字体(如双字节的中日韩字体)的首选项。
 boolean registerFont(Font font)
          在此 GraphicsEnvironment 中注册一个/已创建的 Font
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

GraphicsEnvironment

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

方法详细信息

getLocalGraphicsEnvironment

public static GraphicsEnvironment getLocalGraphicsEnvironment()
返回本地 GraphicsEnvironment

返回:
本地 GraphicsEnvironment

isHeadless

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

返回:
如果此环境无法支持显示器、键盘和鼠标,则返回 true;否则返回 false
从以下版本开始:
1.4
另请参见:
HeadlessException

isHeadlessInstance

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

返回:
如果此环境支持显示器、键盘和鼠标,则返回 true;否则返回 false
从以下版本开始:
1.4
另请参见:
HeadlessException, isHeadless()

getScreenDevices

public abstract GraphicsDevice[] getScreenDevices()
                                           throws HeadlessException
返回所有屏幕 GraphicsDevice 对象组成的数组。

返回:
一个包含所有表示屏幕设备的 GraphicsDevice 对象的数组。
抛出:
HeadlessException - 如果 isHeadless() 返回 true
另请参见:
isHeadless()

getDefaultScreenDevice

public abstract GraphicsDevice getDefaultScreenDevice()
                                               throws HeadlessException
返回默认的屏幕 GraphicsDevice

返回:
表示默认屏幕设备的 GraphicsDevice
抛出:
HeadlessException - 如果 isHeadless() 返回 true
另请参见:
isHeadless()

createGraphics

public abstract Graphics2D createGraphics(BufferedImage img)
返回一个呈现指定 BufferedImageGraphics2D 对象。

参数:
img - 指定的 BufferedImage
返回:
一个用于呈现指定 BufferedImageGraphics2D
抛出:
NullPointerException - 如果 img 为 null

getAllFonts

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

此方法使应用程序能够最精确地控制用于呈现文本的 Font 实例。如果此 GraphicsEnvironment 中的某种字体有多个可编程的变体,则仅在数组中返回该 Font 的一个实例,并且其他变体必须由应用程序派生。

如果此环境中的某种字体有多个可编程的变体,如 Multiple-Master 字体,则在 Font 数组中仅返回该字体的一个实例。其他变体必须由应用程序派生。

返回:
Font 对象的数组
从以下版本开始:
1.2
另请参见:
getAvailableFontFamilyNames(), Font, Font.deriveFont(int, float), Font.getFontName()

getAvailableFontFamilyNames

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

典型用法是向用户展示特定字体系列名称的选择。然后,应用程序可以在创建字体(包括样式,如粗体或斜体)时指定此名称,这为字体系统从同一字体系列的多种字体中选择与自身最匹配的字体提供了灵活性。

返回:
一个 String 数组,它包含针对默认语言环境进行了本地化的字体系列名称,如果不存在针对此语言环境的名称,则返回一个合适的替代名称。
从以下版本开始:
1.2
另请参见:
getAllFonts(), Font, Font.getFamily()

getAvailableFontFamilyNames

public abstract String[] getAvailableFontFamilyNames(Locale l)
返回一个包含此 GraphicsEnvironment 中所有字体系列名称的数组,已针对默认语言环境对它进行了本地化。

典型用法是向用户展示特定字体系列名称的选择。然后,应用程序可以在创建字体(包括样式,如粗体或斜体)时指定此名称,这为字体系统从同一字体系列的多种字体中选择与自身最匹配的字体提供了灵活性。

参数:
l - 一个表示特定地理、政治或文化领域的 Locale 对象。指定 null 等效于指定 Locale.getDefault()
返回:
一个 String 数组,它包含针对指定 Locale 进行了本地化的字体系列名称,如果不存在用于指定语言环境的名称,则返回一个合适的替代名称。
从以下版本开始:
1.2
另请参见:
getAllFonts(), Font, Font.getFamily()

registerFont

public boolean registerFont(Font font)
在此 GraphicsEnvironment 中注册一个 /已创建的 Font。已创建的字体是调用 Font.createFont(int, java.io.InputStream) 返回的字体,或者由调用 Font.deriveFont(int, float) 创建的字体派生的字体。对这种字体调用此方法之后,可在通过名称或系列名称构造新的 Font 的过程中使用它,并且可以通过此应用程序或 applet 的执行上下文中的 getAvailableFontFamilyNames()getAllFonts() 对它进行枚举。这意味着 applet 无法以其他 applet 可以看见它的方式注册字体。

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

  • 字体不是/已创建的 Font
  • 字体与此 GraphicsEnvironment 中的非创建性 Font 冲突。例如,如果该名称是系统字体的名称,或者是 Font 类的文档中所描述的逻辑字体。如果它具有与系统字体相同的系列名称,则不管字体是否发生冲突,它都与实现有关。那些针对已创建字体的异常则意味着应用程序可以替代早先使用新字体创建的字体的注册。

返回:
如果已成功在此 GraphicsEnvironment 中注册 font,则返回 true。
从以下版本开始:
1.6

preferLocaleFonts

public void preferLocaleFonts()
指示在逻辑字体到实际字体的映射关系中特定于语言环境的字体的首选项。调用此方法指示字体呈现主要应该使用特定于主要书写系统(由默认编码和初始默认语言环境指示的书写系统)的字体。例如,如果主要书写系统是日文,那么应该使用日文字体呈现字符(如果可能);只有当日文字体中没有某种形状的字符时,才使用其他字体。

调用此方法所导致的字体呈现行为的实际更改与实现有关;字体呈现行为可能根本不受影响,或者所请求行为与默认行为可能已经是匹配的。用轻量级组件呈现字体的行为与用同级组件呈现字体的行为可能有所不同。因为调用此方法需要不同的字体,所以客户端需要不同的规格,并且可能需要重新计算窗口的大小和布局。因此,应在初始化用户界面之前调用此方法。

从以下版本开始:
1.5

preferProportionalFonts

public void preferProportionalFonts()
指示在逻辑字体到实际字体的映射关系中用于均衡字体和非均衡字体(如双字节的中日韩字体)的首选项。如果默认映射关系包含均衡字体和非均衡字体,则调用此方法指示该映射关系应当使用均衡字体。

调用此方法所导致的字体呈现行为的实际更改与实现有关;字体呈现行为可能根本不受影响。用轻量级组件呈现字体的行为与用同级组件呈现字体的行为可能有所不同。因为调用此方法需要不同的字体,所以客户端需要不同的规格,并且可能需要重新计算窗口的大小和布局。因此,应在初始化用户界面之前调用此方法。

从以下版本开始:
1.5

getCenterPoint

public Point getCenterPoint()
                     throws HeadlessException
返回 Windows 应居中的点。建议使用 getMaximumWindowBounds() 检查居中的 Windows,以确保它们适合有效的显示区域。

返回:
Windows 应居中的点
抛出:
HeadlessException - 如果 isHeadless() 返回 true
从以下版本开始:
1.4
另请参见:
getMaximumWindowBounds()

getMaximumWindowBounds

public Rectangle getMaximumWindowBounds()
                                 throws HeadlessException
返回居中 Windows 的最大边界。这些边界决定了本机窗口系统中的对象,如任务栏和菜单栏。返回的边界将位于单个台显示器上,只有一种情况例外:在 Windows 横跨所有显示器居中的多屏幕系统中,此方法返回整个显示区域的边界。

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

返回:
居中的 Windows 的最大边界
抛出:
HeadlessException - 如果 isHeadless() 返回 true
从以下版本开始:
1.4
另请参见:
getCenterPoint(), GraphicsConfiguration.getBounds(), Toolkit.getScreenInsets(java.awt.GraphicsConfiguration)