- 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
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
GraphicsEnvironment()
这是一个抽象类,不能直接实例化。
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 abstract Graphics2D
createGraphics(BufferedImage img)
返回一个Graphics2D
对象,用于渲染到指定的BufferedImage
中 。abstract Font[]
getAllFonts()
返回一个包含此GraphicsEnvironment
可用的所有字体的一点大小实例的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
- 结果
-
一个
Graphics2D
用于渲染到指定的BufferedImage
- 异常
-
NullPointerException
- 如果img
为空
-
getAllFonts
public abstract Font[] getAllFonts()
返回一个包含此GraphicsEnvironment
可用的所有字体的一点大小实例的GraphicsEnvironment
。 典型的用法是允许用户选择特定的字体。 然后,应用程序可以通过在所选实例上调用deriveFont
方法来deriveFont
字体并设置各种字体属性。该方法为应用程序提供了最精确的控制,使用哪个
Font
实例来呈现文本。 如果该GraphicsEnvironment
的字体具有多个可编程变量,则该数组中仅返回一个Font
一个实例,并且应用程序必须导出其他变体。如果此环境中的字体有多个可编程变体,例如Multiple-Master字体,那么
Font
数组中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
,并在此应用程序或小程序的执行上下文中列出了getAvailableFontFamilyNames()
和getAllFonts()
。 这意味着小程序无法以其他applet可见的方式注册字体。这种方法可能无法注册字体,因此返回
false
是:- 该字体不是创建
Font
。 - 字体与未创建的
Font
冲突已经在这个GraphicsEnvironment
。 例如,如果名称是系统字体的名称,或27049428328991类的文档中描述的逻辑字体。 如果字体与系统字体具有相同的系列名称,字体是否也可能会发生冲突。请注意,应用程序可以使用新的字体替换先前创建的字体的注册。
- 参数
-
font
- 要注册的字体 - 结果
-
如果
font
在此GraphicsEnvironment
成功注册,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)
-
-