java.lang.Object
java.awt.GraphicsEnvironment
GraphicsEnvironment
类描述了Java(tm)应用程序在特定平台上可用的GraphicsDevice
对象和Font
对象的集合。这个GraphicsEnvironment
中的资源可能是本地的,也可能是在远程机器上。GraphicsDevice
对象可以是屏幕、打印机或图像缓冲区,并且是Graphics2D
绘图方法的目的地。每个GraphicsDevice
都有多个与之关联的GraphicsConfiguration
对象。这些对象指定了GraphicsDevice
可以使用的不同配置。
- 参见:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionabstract Graphics2D
返回一个用于渲染到指定BufferedImage
的Graphics2D
对象。abstract Font[]
返回一个包含此GraphicsEnvironment
中所有可用字体的一点大小实例的数组。abstract String[]
返回一个包含此GraphicsEnvironment
中所有字体系列名称的数组,这些名称针对默认区域设置进行了本地化,如Locale.getDefault()
返回的那样。abstract String[]
返回一个包含此GraphicsEnvironment
中所有字体系列名称的数组,这些名称针对指定的区域设置进行了本地化。返回Windows应该居中的点。abstract GraphicsDevice
返回默认屏幕GraphicsDevice
。static GraphicsEnvironment
返回本地GraphicsEnvironment
。返回居中窗口的最大边界。abstract GraphicsDevice[]
返回所有屏幕GraphicsDevice
对象的数组。static boolean
测试此环境中是否支持显示器、键盘和鼠标。boolean
返回此图形环境中是否支持显示器、键盘和鼠标。void
指示在逻辑字体映射到物理字体时对区域特定字体的偏好。void
指示在逻辑字体映射到物理字体时对比例字体(例如双倍间隔的CJK字体)的偏好。boolean
registerFont
(Font font) 在此GraphicsEnvironment
中注册一个已创建的Font
。
-
Constructor Details
-
GraphicsEnvironment
protected GraphicsEnvironment()这是一个抽象类,不能直接实例化。必须从适当的工厂或查询方法获取实例。
-
-
Method Details
-
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
返回所有屏幕GraphicsDevice
对象的数组。- 返回:
-
包含表示屏幕设备的所有
GraphicsDevice
对象的数组 - 抛出:
-
HeadlessException
- 如果isHeadless()
返回true - 参见:
-
getDefaultScreenDevice
返回默认屏幕GraphicsDevice
。- 返回:
-
表示默认屏幕设备的
GraphicsDevice
- 抛出:
-
HeadlessException
- 如果isHeadless()
返回true - 参见:
-
createGraphics
返回一个用于渲染到指定BufferedImage
的Graphics2D
对象。- 参数:
-
img
- 指定的BufferedImage
- 返回:
-
用于渲染到指定
BufferedImage
的Graphics2D
- 抛出:
-
NullPointerException
- 如果img
为null
-
getAllFonts
返回一个包含此GraphicsEnvironment
中所有可用字体的一点大小实例的数组。典型用法是允许用户选择特定字体。然后,应用程序可以通过在所选实例上调用deriveFont
方法来设置字体大小和各种字体属性。此方法为应用程序提供了对用于呈现文本的
Font
实例的最精确控制。如果此GraphicsEnvironment
中的字体具有多个可编程变体,数组中只返回一个该Font
的实例,其他变体必须由应用程序派生。如果此环境中的字体具有多个可编程变体,例如多主字体,数组中只返回一个该字体的实例。其他变体必须由应用程序派生。
- 返回:
-
一个
Font
对象数组 - 自:
- 1.2
- 参见:
-
getAvailableFontFamilyNames
返回一个包含此GraphicsEnvironment
中所有字体系列名称的数组,这些名称针对默认区域设置进行了本地化,如Locale.getDefault()
返回的那样。典型用法是向用户展示选择特定系列名称的界面。然后,应用程序可以在创建字体时指定此名称,结合样式,如粗体或斜体,使字体系统能够在同一字体系列中的多个字体中选择最佳匹配。
- 返回:
-
一个包含针对默认区域设置进行本地化的字体系列名称的
String
数组,如果此区域设置下不存在名称,则返回适当的替代名称。 - 自:
- 1.2
- 参见:
-
getAvailableFontFamilyNames
返回一个包含此GraphicsEnvironment
中所有字体系列名称的数组,这些名称针对指定的区域设置进行了本地化。典型用法是向用户展示选择特定系列名称的界面。然后,应用程序可以在创建字体时指定此名称,结合样式,如粗体或斜体,使字体系统能够在同一字体系列中的多个字体中选择最佳匹配。
- 参数:
-
l
- 表示特定地理、政治或文化区域的Locale
对象。指定null
等效于指定Locale.getDefault()
。 - 返回:
-
一个包含针对指定
Locale
进行本地化的字体系列名称的String
数组,如果指定区域设置下不存在名称,则返回适当的替代名称。 - 自:
- 1.2
- 参见:
-
registerFont
在此GraphicsEnvironment
中注册一个已创建的Font
。已创建的字体是通过调用Font.createFont(int, java.io.InputStream)
返回的字体,或者通过调用Font.deriveFont(int, float)
从已创建的字体派生而来的。在为这样的字体调用此方法之后,它可以用于通过名称或族名构造新的Font
,并且在此应用程序或小程序的执行上下文中由getAvailableFontFamilyNames()
和getAllFonts()
枚举。这意味着小程序无法以使其对其他小程序可见的方式注册字体。此方法可能不注册字体并因此返回
false
的原因包括:- 字体不是一个已创建的
Font
。 - 字体与此
GraphicsEnvironment
中已存在的非已创建Font
冲突。例如,如果名称是系统字体的名称,或者是Font
类文档中描述的逻辑字体。字体是否也会与具有与系统字体相同族名的字体冲突是依赖于实现的。请注意,应用程序可以用新的字体取代先前创建的字体的注册。
- 参数:
-
font
- 要注册的字体 - 返回:
-
如果
font
成功注册在此GraphicsEnvironment
中,则返回true。 - 抛出:
-
NullPointerException
- 如果font
为null - 自:
- 1.6
- 字体不是一个已创建的
-
preferLocaleFonts
public void preferLocaleFonts()表示在逻辑字体映射到物理字体时偏好于特定区域设置的字体。调用此方法表示字体呈现应主要使用特定于主要书写系统的字体(由默认编码和初始默认区域设置指示的书写系统)。例如,如果主要书写系统是日语,则应尽可能使用日语字体呈现字符,而其他字体仅用于日语字体没有字形的字符。由于调用此方法导致的字体呈现行为的实际更改取决于实现;它可能根本没有任何效果,或者请求的行为可能已经与默认行为匹配。字体呈现在轻量级和对等组件中的行为可能不同。由于调用此方法请求不同的字体,客户端应预期不同的度量,并且可能需要重新计算窗口大小和布局。因此,此方法应在用户界面初始化之前调用。
- 自:
- 1.5
-
preferProportionalFonts
public void preferProportionalFonts()表示在逻辑字体映射到物理字体时偏好于比例字体而不是非比例字体(例如双倍间隔的CJK字体)。如果默认映射包含存在比例和非比例变体的字体,则调用此方法表示映射应使用比例变体。由于调用此方法导致的字体呈现行为的实际更改取决于实现;它可能根本没有任何效果。字体呈现在轻量级和对等组件中的行为可能不同。由于调用此方法请求不同的字体,客户端应预期不同的度量,并且可能需要重新计算窗口大小和布局。因此,此方法应在用户界面初始化之前调用。
- 自:
- 1.5
-
getCenterPoint
返回Windows应居中的点。建议检查居中的Windows以确保它们适合可用的显示区域,使用getMaximumWindowBounds()。- 返回:
- Windows应居中的点
- 抛出:
-
HeadlessException
- 如果isHeadless()返回true - 自:
- 1.4
- 参见:
-
getMaximumWindowBounds
返回居中的Windows的最大边界。这些边界考虑了本机窗口系统中的对象,如任务栏和菜单栏。返回的边界将位于单个显示器上,有一个例外:在Windows应跨越所有显示器居中的多屏系统上,此方法返回整个显示区域的边界。要获取单个显示器的可用边界,请使用
GraphicsConfiguration.getBounds()
和Toolkit.getScreenInsets()
。- 返回:
- 居中的Windows的最大边界
- 抛出:
-
HeadlessException
- 如果isHeadless()返回true - 自:
- 1.4
- 参见:
-