GraphicsEnvironment
类描述了特定平台上 Java(tm) 应用程序可用的 GraphicsDevice
对象和 Font
对象的集合。此 GraphicsEnvironment
中的资源可能在本地或远程计算机上。 GraphicsDevice
对象可以是屏幕、打印机或图像缓冲区,并且是 Graphics2D
绘图方法的目标。每个 GraphicsDevice
都有许多与之关联的 GraphicsConfiguration
对象。这些对象指定可以使用 GraphicsDevice
的不同配置。
- 参见:
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述abstract Graphics2D
返回一个Graphics2D
对象以渲染到指定的BufferedImage
中。abstract Font[]
返回一个数组,其中包含此GraphicsEnvironment
中所有可用字体的单点大小实例。abstract String[]
返回一个数组,其中包含此GraphicsEnvironment
中针对默认locale本地化的所有字体系列的名称,由Locale.getDefault()
返回。abstract String[]
返回一个数组,其中包含针对指定locale本地化的GraphicsEnvironment
中所有字体系列的名称。返回 Windows 应居中的点。abstract GraphicsDevice
返回默认屏幕GraphicsDevice
。static GraphicsEnvironment
返回本地GraphicsEnvironment
。返回居中窗口的最大边界。abstract GraphicsDevice[]
返回所有屏幕GraphicsDevice
对象的数组。static boolean
测试此环境是否支持显示器、键盘和鼠标。boolean
返回此图形环境是否支持显示器、键盘和鼠标。void
指示在逻辑字体到物理字体的map中对特定于区域设置的字体的首选项。void
指示在逻辑字体到物理字体的map中比例字体优先于非比例字体(例如双行距 CJK 字体)。boolean
registerFont
(Font font) 注册一个创建Font
在这个GraphicsEnvironment
中。
-
构造方法详细信息
-
GraphicsEnvironment
protected 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
返回所有屏幕GraphicsDevice
对象的数组。- 返回:
-
包含代表屏幕设备的所有
GraphicsDevice
对象的数组 - 抛出:
HeadlessException
- 如果 isHeadless() 返回真- 参见:
-
getDefaultScreenDevice
返回默认屏幕GraphicsDevice
。- 返回:
-
代表默认屏幕设备的
GraphicsDevice
- 抛出:
HeadlessException
- 如果 isHeadless() 返回真- 参见:
-
createGraphics
返回一个Graphics2D
对象以渲染到指定的BufferedImage
中。- 参数:
img
- 指定的BufferedImage
- 返回:
-
一个
Graphics2D
用于渲染到指定的BufferedImage
- 抛出:
NullPointerException
- 如果img
为空
-
getAllFonts
返回一个数组,其中包含此GraphicsEnvironment
中所有可用字体的单点大小实例。典型用法是允许用户选择特定字体。然后,应用程序可以通过在所选实例上调用deriveFont
方法来调整字体大小并设置各种字体属性。此方法为应用程序提供了对使用哪个
Font
实例呈现文本的最精确控制。如果此GraphicsEnvironment
中的一种字体具有多个可编程变体,则数组中只会返回该Font
的一个实例,其他变体必须由应用程序派生。如果此环境中的一种字体具有多种可编程变体,例如多母版字体,则在
Font
数组中仅返回该字体的一个实例。其他变体必须由应用程序导出。- 返回:
Font
对象数组- 自从:
- 1.2
- 参见:
-
getAvailableFontFamilyNames
返回一个数组,其中包含此GraphicsEnvironment
中针对默认locale本地化的所有字体系列的名称,由Locale.getDefault()
返回。典型的用法是向用户展示以选择特定的姓氏。然后,应用程序可以在创建字体时指定此名称,并结合样式(例如粗体或斜体),使字体系统可以灵活地在同一字体系列的多种字体中选择自己的最佳匹配。
- 返回:
String
数组包含为默认locale本地化的字体系列名称,或者如果此locale不存在名称,则为合适的替代名称。- 自从:
- 1.2
- 参见:
-
getAvailableFontFamilyNames
返回一个数组,其中包含针对指定locale本地化的GraphicsEnvironment
中所有字体系列的名称。典型的用法是向用户展示以选择特定的姓氏。然后,应用程序可以在创建字体时指定此名称,并结合样式(例如粗体或斜体),使字体系统可以灵活地在同一字体系列的多种字体中选择自己的最佳匹配。
- 参数:
l
- 代表特定地理、政治或文化区域的Locale
对象。指定null
等同于指定Locale.getDefault()
。- 返回:
String
的数组,其中包含为指定的Locale
本地化的字体系列名称,或者如果指定的locale不存在名称,则为合适的替代名称。- 自从:
- 1.2
- 参见:
-
registerFont
注册一个创建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
返回 Windows 应居中的点。建议使用 getMaximumWindowBounds() 检查居中窗口以确保它们适合可用显示区域。- 返回:
- Windows 应该居中的点
- 抛出:
HeadlessException
- 如果 isHeadless() 返回真- 自从:
- 1.4
- 参见:
-
getMaximumWindowBounds
返回居中窗口的最大边界。这些边界说明了本机窗口系统中的对象,例如任务栏和菜单栏。返回的边界将驻留在单个显示器上,但有一个异常:在 Windows 应在所有显示器上居中的多屏幕系统上,此方法返回整个显示区域的边界。要获取单个显示器的可用范围,请使用
GraphicsConfiguration.getBounds()
和Toolkit.getScreenInsets()
。- 返回:
- 居中窗口的最大边界
- 抛出:
HeadlessException
- 如果 isHeadless() 返回真- 自从:
- 1.4
- 参见:
-