模块  java.desktop
软件包  java.awt

Class GraphicsEnvironment


  • public abstract class GraphicsEnvironmentextends Object
    GraphicsEnvironment类描述了特定平台上的Java(tm)应用程序可用的GraphicsDevice对象和Font对象的集合。 GraphicsEnvironment的资源可能是本地资源, 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()
      • getAllFonts

        public abstract Font[] getAllFonts()
        返回一个数组,其中包含此GraphicsEnvironment可用的所有字体的单点大小实例。 典型用法是允许用户选择特定字体。 然后,应用程序可以通过调用所选实例上的deriveFont方法来调整字体大小并设置各种字体属性。

        此方法为应用程序提供了最精确的控制,该Font使用Font实例来呈现文本。 如果此GraphicsEnvironment的字体具有多个可编程变体,则阵列中仅返回该Font一个实例,并且应用程序必须派生其他变体。

        如果此环境中的字体具有多个可编程变体,例如Multiple-Master字体,则在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 ,并在此应用程序或applet的执行上下文中由getAvailableFontFamilyNames()getAllFonts()枚举。 这意味着applet无法以对其他applet可见的方式注册字体。

        此方法可能无法注册字体并因此返回false是:

        • 该字体不是创建的 Font
        • 该字体与此GraphicsEnvironment已有的未创建的Font冲突。 例如,如果名称是系统字体的名称,或者是Font类文档中描述的逻辑字体。 如果字体与系统字体具有相同的系列名称,则字体是否也可能会发生冲突,这取决于实现。

          请注意,应用程序可以取代先前创建的字体的注册。

        参数
        font - 要注册的字体
        结果
        如果 fontfont中成功注册, 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)