Module  java.desktop
软件包  java.awt

Class GraphicsEnvironment



  • public abstract class GraphicsEnvironment
    extends Object
    GraphicsEnvironment类描述了特定平台上可用于Java(tm)应用程序的GraphicsDevice对象和Font对象的集合。 GraphicsEnvironment的资源可能是本地的或远程机器上的。 GraphicsDevice对象可以是屏幕,打印机或图像缓冲区,并且是Graphics2D绘图方法的目标。 每个GraphicsDevice都有多个GraphicsConfiguration对象相关联。 这些对象指定可以使用GraphicsDevice的不同配置。
    另请参见:
    GraphicsDeviceGraphicsConfiguration
    • 构造方法详细信息

      • GraphicsEnvironment

        protected 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
        另请参见:
        HeadlessExceptionisHeadless()
      • getScreenDevices

        public abstract GraphicsDevice[] getScreenDevices​()
                                                   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()FontFont.deriveFont(int, float)Font.getFontName()
      • getAvailableFontFamilyNames

        public abstract String[] getAvailableFontFamilyNames​()
        返回一个数组,该数组包含本地化为默认语言环境的GraphicsEnvironment中所有字体族的名称,由Locale.getDefault()返回。

        典型的用法是呈现给用户以选择特定的姓氏。 然后,应用程序可以在创建字体时指定此名称,并结合使用粗体或斜体的样式,使字体系统灵活地选择自己在同一字体系列中的多种字体之间的最佳匹配。

        结果
        包含本地化为默认语言环境的字体族名称的 String数组,如果此区域设置中没有名称,则为合适的替代名称。
        从以下版本开始:
        1.2
        另请参见:
        getAllFonts()FontFont.getFamily()
      • getAvailableFontFamilyNames

        public abstract String[] getAvailableFontFamilyNames​(Locale l)
        返回包含在此所有字体系列名称的数组, GraphicsEnvironment本地化为指定的语言环境。

        典型的用法是呈现给用户以选择特定的姓氏。 然后,应用程序可以在创建字体时指定此名称,并结合使用粗体或斜体的样式,使字体系统灵活地选择自己在同一字体系列中的多种字体之间的最佳匹配。

        参数
        l - 代表特定地理,政治或文化区域的Locale对象。 指定null相当于指定Locale.getDefault()
        结果
        一个 String的数组,包含为指定的 Locale定位的字体族名,或者如果没有指定语言环境的名称,则为合适的替代名称。
        从以下版本开始:
        1.2
        另请参见:
        getAllFonts()FontFont.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)