java.lang.Object java.awt.GraphicsEnvironment
public abstract class GraphicsEnvironment
GraphicsEnvironment
类描述了 Java(tm) 应用程序在特定平台上可用的 GraphicsDevice
对象和 Font
对象的集合。此 GraphicsEnvironment
中的资源可以是本地资源,也可以位于远程机器上。GraphicsDevice
对象可以是屏幕、打印机或图像缓冲区,并且都是 Graphics2D
绘图方法的目标。每个 GraphicsDevice
都有许多与之相关的 GraphicsConfiguration
对象。这些对象指定了使用 GraphicsDevice
所需的不同配置。
构造方法摘要 | |
---|---|
protected |
GraphicsEnvironment() 这是一个抽象类,不能直接将其实例化。 |
方法摘要 | |
---|---|
abstract Graphics2D |
createGraphics(BufferedImage img) 返回一个呈现指定 BufferedImage 的 Graphics2D 对象。 |
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) 在此 GraphicsEnvironment 中注册一个/已创建的 Font 。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
protected GraphicsEnvironment()
方法详细信息 |
---|
public static GraphicsEnvironment getLocalGraphicsEnvironment()
GraphicsEnvironment
。
GraphicsEnvironment
public static boolean isHeadless()
true
;否则返回
false
HeadlessException
public boolean isHeadlessInstance()
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)
BufferedImage
的
Graphics2D
对象。
img
- 指定的
BufferedImage
BufferedImage
的
Graphics2D
NullPointerException
- 如果
img
为 null
public abstract Font[] getAllFonts()
GraphicsEnvironment
中所有可用字体的像素级实例。典型用法就是允许用户选择特定的字体。然后,通过调用所选择实例中的
deriveFont
方法,应用程序可以调整字体大小和设置各种字体属性。
此方法使应用程序能够最精确地控制用于呈现文本的 Font
实例。如果此 GraphicsEnvironment
中的某种字体有多个可编程的变体,则仅在数组中返回该 Font
的一个实例,并且其他变体必须由应用程序派生。
如果此环境中的某种字体有多个可编程的变体,如 Multiple-Master 字体,则在 Font
数组中仅返回该字体的一个实例。其他变体必须由应用程序派生。
Font
对象的数组
getAvailableFontFamilyNames()
,
Font
,
Font.deriveFont(int, float)
,
Font.getFontName()
public abstract String[] getAvailableFontFamilyNames()
GraphicsEnvironment
中所有字体系列名称的数组,它针对默认语言环境进行了本地化,由
Locale.getDefault()
返回。
典型用法是向用户展示特定字体系列名称的选择。然后,应用程序可以在创建字体(包括样式,如粗体或斜体)时指定此名称,这为字体系统从同一字体系列的多种字体中选择与自身最匹配的字体提供了灵活性。
String
数组,它包含针对默认语言环境进行了本地化的字体系列名称,如果不存在针对此语言环境的名称,则返回一个合适的替代名称。
getAllFonts()
,
Font
,
Font.getFamily()
public abstract String[] getAvailableFontFamilyNames(Locale l)
GraphicsEnvironment
中所有字体系列名称的数组,已针对默认语言环境对它进行了本地化。
典型用法是向用户展示特定字体系列名称的选择。然后,应用程序可以在创建字体(包括样式,如粗体或斜体)时指定此名称,这为字体系统从同一字体系列的多种字体中选择与自身最匹配的字体提供了灵活性。
l
- 一个表示特定地理、政治或文化领域的
Locale
对象。指定
null
等效于指定
Locale.getDefault()
。
String
数组,它包含针对指定
Locale
进行了本地化的字体系列名称,如果不存在用于指定语言环境的名称,则返回一个合适的替代名称。
getAllFonts()
,
Font
,
Font.getFamily()
public boolean registerFont(Font font)
GraphicsEnvironment
中注册一个
/已创建的
Font
。已创建的字体是调用
Font.createFont(int, java.io.InputStream)
返回的字体,或者由调用
Font.deriveFont(int, float)
创建的字体派生的字体。对这种字体调用此方法之后,可在通过名称或系列名称构造新的
Font
的过程中使用它,并且可以通过此应用程序或 applet 的执行上下文中的
getAvailableFontFamilyNames()
和
getAllFonts()
对它进行枚举。这意味着 applet 无法以其他 applet 可以看见它的方式注册字体。
此方法无法注册字体并因此返回 false
的原因是:
Font
。 GraphicsEnvironment
中的非创建性 Font
冲突。例如,如果该名称是系统字体的名称,或者是 Font
类的文档中所描述的逻辑字体。如果它具有与系统字体相同的系列名称,则不管字体是否发生冲突,它都与实现有关。那些针对已创建字体的异常则意味着应用程序可以替代早先使用新字体创建的字体的注册。
GraphicsEnvironment
中注册
font
,则返回 true。
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)