public abstract class GraphicsEnvironment extends Object
GraphicsEnvironment
类描述了可用于特定平台上的Java(tm)应用程序的GraphicsDevice
对象和Font
对象的集合。
此GraphicsEnvironment中的GraphicsEnvironment
可能是本地的或远程机器上的。
GraphicsDevice
对象可以是屏幕,打印机或图像缓冲区,并且是Graphics2D
绘图方法的目的地 。
每个GraphicsDevice
都有一些与之相关的GraphicsConfiguration
对象。
这些对象指定可以使用GraphicsDevice
不同配置。
GraphicsDevice
, GraphicsConfiguration
Modifier | Constructor and Description |
---|---|
protected |
GraphicsEnvironment()
这是一个抽象类,不能直接实例化。
|
Modifier and Type | Method and Description |
---|---|
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 。
|
public static GraphicsEnvironment getLocalGraphicsEnvironment()
GraphicsEnvironment
。
GraphicsEnvironment
public static boolean isHeadless()
true
如果这个环境不能支持显示器,键盘和鼠标;
false
否则
HeadlessException
public boolean isHeadlessInstance()
HeadlessException
从依赖于显示器,键盘或鼠标的图形环境的区域抛出HeadlessException。
true
如果在这种环境中可以支持显示器,键盘和鼠标;
false
否则
HeadlessException
, isHeadless()
public abstract GraphicsDevice[] getScreenDevices() throws HeadlessException
GraphicsDevice
对象的数组。
GraphicsDevice
对象的数组
HeadlessException
- 如果isHeadless()返回true
isHeadless()
public abstract GraphicsDevice getDefaultScreenDevice() throws HeadlessException
GraphicsDevice
。
GraphicsDevice
表示默认屏幕设备
HeadlessException
- 如果isHeadless()返回true
isHeadless()
public abstract Graphics2D createGraphics(BufferedImage img)
Graphics2D
对象,用于渲染到指定的BufferedImage
中 。
img
- 指定的
BufferedImage
Graphics2D
用于渲染到指定的
BufferedImage
NullPointerException
- 如果
img
为空
public abstract Font[] getAllFonts()
GraphicsEnvironment
的所有字体的一点大小实例的GraphicsEnvironment
。
典型的用法是允许用户选择特定的字体。
然后,应用程序可以调整字体的大小并通过在所选实例上调用deriveFont
方法来设置各种字体属性。
该方法为应用程序提供了最精确的控制,使用哪种Font
实例来呈现文本。 如果此GraphicsEnvironment
中的字体具有多个可编程变量,那么该数组中只返回一个该Font
一个实例,并且应用程序必须导出其他变体。
如果此环境中的字体具有多个可编程变体,例如Multiple-Master字体,那么在Font
数组中只返回该字体的一个实例。 其他变体必须由应用程序导出。
Font
对象
getAvailableFontFamilyNames()
, Font
, Font.deriveFont(int, float)
, Font.getFontName()
public abstract String[] getAvailableFontFamilyNames()
GraphicsEnvironment
包含本地化为默认语言环境的GraphicsEnvironment
中所有字体族的名称,由Locale.getDefault()
返回。
典型的用法是呈现给用户以选择特定的姓氏。 然后,应用程序可以在创建字体时指定此名称,并结合使用粗体或斜体的样式,使字体系统灵活地选择自己在同一字体系列中的多种字体之间的最佳匹配。
String
本地化默认语言环境,或者如果没有名称此语言环境中存在的合适的替代名称包含字体系列名称。
getAllFonts()
, Font
, Font.getFamily()
public abstract String[] getAvailableFontFamilyNames(Locale l)
GraphicsEnvironment
中所有字体族的名称。
典型的用法是呈现给用户以选择特定的姓氏。 然后,应用程序可以在创建字体时指定此名称,并结合使用粗体或斜体的样式,使字体系统灵活地选择自己在同一字体系列中的多种字体之间的最佳匹配。
l
- 代表特定地理,政治或文化区域的Locale
对象。
指定null
等效于指定Locale.getDefault()
。
String
本地化的字体族名称的String
Locale
,或者如果指定的区域设置中没有名称,则为合适的替代名称。
getAllFonts()
, Font
, Font.getFamily()
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
。 例如,如果名称是系统字体的名称,或者如Font
类的文档中所述的逻辑字体。 如果字体与系统字体具有相同的系列名称,字体是否也可能会发生冲突。 请注意,应用程序可以使用新的字体替换先前创建的字体的注册。
font
成功注册在这个
GraphicsEnvironment
。
NullPointerException
- 如果
font
为空
public void preferLocaleFonts()
由调用此方法导致的字体渲染行为的实际变化取决于实现; 它可能根本没有影响,或者所请求的行为可能已经与默认行为相匹配。 轻量级和对等组件中的字体渲染行为可能会有所不同。 由于调用此方法请求不同的字体,客户端应该期望不同的度量,并且可能需要重新计算窗口大小和布局。 因此,在用户界面初始化之前应该调用此方法。
public void preferProportionalFonts()
由调用此方法导致的字体渲染行为的实际变化取决于实现; 它可能没有任何效果。 轻量级和对等组件中的字体渲染行为可能会有所不同。 由于调用此方法请求不同的字体,客户端应该期望不同的度量,并且可能需要重新计算窗口大小和布局。 因此,在用户界面初始化之前应该调用此方法。
public Point getCenterPoint() throws HeadlessException
HeadlessException
- 如果isHeadless()返回true
getMaximumWindowBounds()
public Rectangle getMaximumWindowBounds() throws HeadlessException
要获得单个显示的可用边界,请使用GraphicsConfiguration.getBounds()
和Toolkit.getScreenInsets()
。
HeadlessException
- 如果isHeadless()返回true
getCenterPoint()
,
GraphicsConfiguration.getBounds()
,
Toolkit.getScreenInsets(java.awt.GraphicsConfiguration)