- java.lang.Object
-
- java.awt.GraphicsEnvironment
-
public abstract class GraphicsEnvironment extends Object
GraphicsEnvironment
类描述了特定平台上的Java(tm)应用程序可用的GraphicsDevice
对象和Font
对象的集合。GraphicsEnvironment
的资源可能是本地资源,GraphicsEnvironment
可能是远程计算机上的资源。GraphicsDevice
对象可以是屏幕,打印机或图像缓冲区,是Graphics2D
绘图方法的目的地。 每个GraphicsDevice
都有许多与之关联的GraphicsConfiguration
个对象。 这些对象指定可以使用GraphicsDevice
的不同配置。- 另请参见:
-
GraphicsDevice
,GraphicsConfiguration
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
GraphicsEnvironment()
这是一个抽象类,无法直接实例化。
-
方法摘要
所有方法 静态方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 abstract Graphics2D
createGraphics(BufferedImage img)
返回Graphics2D
对象以呈现到指定的BufferedImage
中 。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)
注册一个 创建Font
在这个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
从图形环境中依赖于显示器,键盘或鼠标的区域抛出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)
返回Graphics2D
对象以呈现到指定的BufferedImage
中 。- 参数
-
img
- 指定的BufferedImage
- 结果
-
a
Graphics2D
用于渲染到指定的BufferedImage
- 异常
-
NullPointerException
- 如果img
为空
-
getAllFonts
public abstract Font[] getAllFonts()
返回一个数组,其中包含此GraphicsEnvironment
可用的所有字体的单点大小实例。 典型用法是允许用户选择特定字体。 然后,应用程序可以通过调用所选实例上的deriveFont
方法来调整字体大小并设置各种字体属性。此方法为应用程序提供了最精确的控制,该
Font
使用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)
注册一个创建Font
在这个GraphicsEnvironment
。 创建的字体是从调用Font.createFont(int, java.io.InputStream)
返回的字体,或通过调用Font.deriveFont(int, float)
从创建的字体派生的字体。 在为这种字体调用此方法之后,可以使用它来按名称或系列名称构造新的Font
,并在此应用程序或applet的执行上下文中由getAvailableFontFamilyNames()
和getAllFonts()
枚举。 这意味着applet无法以对其他applet可见的方式注册字体。此方法可能无法注册字体并因此返回
false
是:- 该字体不是创建的
Font
。 - 该字体与此
GraphicsEnvironment
已有的未创建的Font
冲突。 例如,如果名称是系统字体的名称,或者是Font
类文档中描述的逻辑字体。 如果字体与系统字体具有相同的系列名称,则字体是否也可能会发生冲突,这取决于实现。请注意,应用程序可以取代先前创建的字体的注册。
- 参数
-
font
- 要注册的字体 - 结果
-
如果
font
在font
中成功注册,GraphicsEnvironment
。 - 异常
-
NullPointerException
- 如果font
为空 - 从以下版本开始:
- 1.6
- 该字体不是创建的
-
preferLocaleFonts
public void preferLocaleFonts()
表示在逻辑字体到物理字体的映射中对特定于语言环境的字体的首选项。 调用此方法表示字体呈现应主要使用特定于主写入系统的字体(由默认编码和初始默认语言环境指示的字体)。 例如,如果主要书写系统是日语,则应尽可能使用日语字体呈现字符,而其他字体仅应用于日语字体没有字形的字符。调用此方法导致的字体呈现行为的实际变化取决于实现; 它可能根本没有任何效果,或者请求的行为可能已经与默认行为匹配。 轻量级和对等组件中的字体呈现行为可能不同。 由于调用此方法会请求不同的字体,因此客户端应该需要不同的度量标准,并且可能需要重新计算窗口大小和布局。 因此,应在用户界面初始化之前调用此方法。
- 从以下版本开始:
- 1.5
-
preferProportionalFonts
public void preferProportionalFonts()
表示在逻辑字体到物理字体的映射中,与非比例(例如,双间距CJK字体)字体成比例的首选项。 如果默认映射包含存在比例和非比例变体的字体,则调用此方法表示映射应使用比例变量。调用此方法导致的字体呈现行为的实际变化取决于实现; 它根本没有任何影响。 轻量级和对等组件中的字体呈现行为可能不同。 由于调用此方法会请求不同的字体,因此客户端应该需要不同的度量标准,并且可能需要重新计算窗口大小和布局。 因此,应在用户界面初始化之前调用此方法。
- 从以下版本开始:
- 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)
-
-