模块  java.desktop
软件包  java.awt

Class Toolkit


  • public abstract class Toolkit
    extends Object
    此类是Abstract Window Toolkit的所有实际实现的抽象超类。 Toolkit类的子类用于将各种组件绑定到特定的本机工具包实现。

    如果没有明确指定相反的情况,许多GUI事件可以异步传递给用户。 以及许多GUI操作可以异步执行。 这一事实意味着如果设置了组件的状态,然后立即查询状态,则返回的值可能尚未反映所请求的更改。 此行为包括但不限于:

    • 滚动到指定位置。
      例如,调用ScrollPane.setScrollPosition然后getScrollPosition如果原始请求尚未被处理,则可能返回一个不正确的值。
    • 将焦点从一个组件移动到另一个组件。
      有关更多信息,请参阅4728442103711中的Timing Focus Transfers
    • 使顶级容器可见。
      调用setVisible(true)WindowFrameDialog可能异步发生。
    • 设置顶级容器的大小或位置。
      调用setSizesetBoundssetLocation上的WindowFrameDialog被转发到底层窗口管理系统,并且可以被忽略或修改。 有关更多信息,请参见Window

    大多数应用程序不应直接调用此类中的任何方法。 Toolkit定义的方法是“胶水”, java.awt包中与平台无关的类与java.awt的对应类连接java.awt.peer Toolkit定义的某些方法直接查询本机操作系统。

    从以下版本开始:
    1.0
    • 字段详细信息

      • desktopProperties

        protected final Map<String,​Object> desktopProperties
        桌面属性。
      • desktopPropsSupport

        protected final PropertyChangeSupport desktopPropsSupport
        桌面属性更改支持。
    • 构造方法详细信息

      • Toolkit

        public Toolkit()
    • 方法详细信息

      • loadSystemColors

        protected void loadSystemColors​(int[] systemColors)
                                 throws HeadlessException
        使用当前系统颜色值填充作为参数提供的整数数组。
        参数
        systemColors - 整数数组。
        异常
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true
        从以下版本开始:
        1.1
        另请参见:
        GraphicsEnvironment.isHeadless()
      • setDynamicLayout

        public void setDynamicLayout​(boolean dynamic)
                              throws HeadlessException
        控制在调整大小期间动态验证Container的布局,还是在调整大小完成后静态验证。 使用isDynamicLayoutActive()检测此程序中是否启用此功能,并且此操作系统和/或窗口管理器是否支持此功能。 请注意,并非所有平台都支持此功能,相反,在某些平台上无法关闭此功能。 在这些平台上,不支持(或始终支持)调整大小期间的动态布局,设置此属性不起作用。 请注意,可以在某些平台上将此功能设置或取消设置为操作系统或窗口管理器的属性。 在此类平台上,必须在操作系统或窗口管理器级别设置动态调整大小属性,才能使此方法生效。 此方法不会更改基础操作系统或窗口管理器的支持或设置。 可以使用getDesktopProperty(“awt.dynamicLayoutSupported”)方法查询OS / WM支持。
        参数
        dynamic - 如果为true,则容器应在调整Container大小时重新布局其组件。 如果为false,则在调整大小完成后将验证布局。
        异常
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true
        从以下版本开始:
        1.4
        另请参见:
        isDynamicLayoutSet()isDynamicLayoutActive()getDesktopProperty(String propertyName)GraphicsEnvironment.isHeadless()
      • isDynamicLayoutSet

        protected boolean isDynamicLayoutSet()
                                      throws HeadlessException
        返回在调整大小期间动态验证Container的布局,还是在调整大小完成后静态验证。 注意:此方法返回以编程方式设置的值; 它不反映操作系统或窗口管理器级别对调整大小时动态布局或当前操作系统或窗口管理器设置的支持。 可以使用getDesktopProperty(“awt.dynamicLayoutSupported”)查询OS / WM支持。
        结果
        如果动态完成Container的验证,则为true;如果在调整大小完成后进行验证,则为false。
        异常
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true
        从以下版本开始:
        1.4
        另请参见:
        setDynamicLayout(boolean dynamic)isDynamicLayoutActive()getDesktopProperty(String propertyName)GraphicsEnvironment.isHeadless()
      • isDynamicLayoutActive

        public boolean isDynamicLayoutActive()
                                      throws HeadlessException
        返回当前是否在底层操作系统和/或窗口管理器上启用了resize上的Containers的动态布局。 如果平台支持它,则可以使用setDynamicLayout(boolean)以编程方式启用或禁用平台动态布局。 无论是否支持切换,或者是否将truefalse指定为参数,或者根本没有被调用,此方法将返回当前活动平台的行为,并且在调整大小期间JDK将确定布局策略。

        如果动态布局当前处于非活动状态,则Container在重新调整大小时重新布局其组件。 因此,每次调整大小时,只会调用一次Component.validate()方法。 如果动态布局当前处于活动状态,则Container会在每个本机调整大小事件上重新布局其组件,并且每次都将调用validate()方法。 可以使用getDesktopProperty(“awt.dynamicLayoutSupported”)方法查询OS / WM支持。 此属性将反映平台功能,但不足以判断它是否当前已启用。

        结果
        如果调整大小时容器的动态布局当前处于活动状态,则返回true,否则返回false。
        异常
        HeadlessException - 如果GraphicsEnvironment.isHeadless()方法返回true
        从以下版本开始:
        1.4
        另请参见:
        setDynamicLayout(boolean dynamic)isDynamicLayoutSet()getDesktopProperty(String propertyName)GraphicsEnvironment.isHeadless()
      • getScreenResolution

        public abstract int getScreenResolution()
                                         throws HeadlessException
        以每英寸点数返回屏幕分辨率。
        结果
        此工具包的屏幕分辨率,以每英寸点数为单位。
        异常
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true
        另请参见:
        GraphicsEnvironment.isHeadless()
      • getFontList

        @Deprecated
        public abstract String[] getFontList()
        返回此工具包中可用字体的名称。

        对于1.1,不推荐使用以下字体名称(替换名称如下):

        • TimesRoman(使用Serif)
        • Helvetica(使用SansSerif)
        • 快递(使用Monospaced)

        ZapfDingbats字体名在1.1中也不推荐使用,但字符在Unicode中定义,从0x2700开始,从1.1开始,Java支持这些字符。

        结果
        此工具包中可用字体的名称。
        另请参见:
        GraphicsEnvironment.getAvailableFontFamilyNames()
      • sync

        public abstract void sync()
        同步此工具包的图形状态。 一些窗口系统可以缓冲图形事件。

        此方法可确保显示是最新的。 它对动画很有用。

      • getDefaultToolkit

        public static Toolkit getDefaultToolkit()
        获取默认工具包。

        如果命名的系统属性"java.awt.headless"设置为true那么无头执行Toolkit ,否则用默认的具体平台实现Toolkit使用。

        如果此工具包不是无头实现,并且如果它们存在,则将加载AccessibilityProvider服务提供者(如果系统属性javax.accessibility.assistive_technologies指定)。

        设置此属性的一个示例是使用-Djavax.accessibility.assistive_technologies=MyServiceProvider调用Java。 除了MyServiceProvider之外,还可以使用逗号分隔列表指定其他服务提供者。 创建AWT工具包后加载服务提供程序。 所有错误都通过AWTError异常处理。

        assistive_technologies属性中指定的名称用于查询每个服务提供者实现。 如果请求的名称相匹配name服务提供商,该AccessibilityProvider.activate()方法将被调用,以激活匹配的服务提供商。

        实现要求:
        如果未使用系统属性指定辅助技术服务提供程序,则此实现将查找位于以下位置的属性文件:
        • ${user.home}/.accessibility.properties
        • ${java.home}/conf/accessibility.properties
        只会查询这些文件中的第一个。 通过设置assistive_technologies=属性指定请求的服务提供者。 可以指定单个提供者或逗号分隔的提供者列表。
        结果
        默认工具包。
        异常
        AWTError - 如果找不到工具包,或者无法访问或实例化工具包。
        另请参见:
        ServiceLoaderAccessibilityProvider
      • getImage

        public abstract Image getImage​(String filename)
        返回从指定文件获取像素数据的图像,其格式可以是GIF,JPEG或PNG。 底层工具包尝试将具有相同文件名的多个请求解析为同一返回的Image。

        由于促进共享Image对象所需的机制可能会继续保留不再无限期使用的图像,因此鼓励开发人员使用createImage变体实现自己的图像缓存。 如果指定文件中包含的图像数据发生更改,则此方法返回的Image对象可能仍包含在先前调用后从文件加载的过时信息。 可以通过调用返回的Image上的flush方法手动丢弃先前加载的图像数据。

        此方法首先检查是否安装了安全管理器。 如果是,则该方法使用指定的文件调用安全管理器的checkRead方法,以确保允许访问映像。

        参数
        filename - 包含可识别文件格式的像素数据的文件的名称。
        结果
        从指定文件获取其像素数据的图像。
        异常
        SecurityException - 如果存在安全管理器且其checkRead方法不允许该操作。
        另请参见:
        createImage(java.lang.String)
      • getImage

        public abstract Image getImage​(URL url)
        返回从指定的URL获取像素数据的图像。 指定URL引用的像素数据必须采用以下格式之一:GIF,JPEG或PNG。 底层工具包尝试使用相同的URL将多个请求解析为同一返回的Image。

        由于促进共享Image对象所需的机制可能会继续保留不再无限期使用的图像,因此鼓励开发人员使用createImage变体实现自己的图像缓存。 如果存储在指定URL的图像数据发生更改,则此方法返回的Image对象可能仍包含在先前调用后从URL中提取的过时信息。 可以通过在返回的Image上调用flush方法手动丢弃先前加载的图像数据。

        此方法首先检查是否安装了安全管理器。 如果是,则该方法使用相应的权限调用安全管理器的checkPermission方法,以确保允许访问映像。 如果与指定URL的连接需要URLPermissionSocketPermission ,则使用URLPermission进行安全检查。

        参数
        url - 用于获取像素数据的URL。
        结果
        从指定的URL获取其像素数据的图像。
        异常
        SecurityException - 如果存在安全管理器且其checkPermission方法不允许该操作。
        另请参见:
        createImage(java.net.URL)
      • createImage

        public abstract Image createImage​(String filename)
        返回从指定文件获取像素数据的图像。 返回的Image是一个新对象,不会与此方法的任何其他调用者或其getImage变体共享。

        此方法首先检查是否安装了安全管理器。 如果是,则该方法使用指定的文件调用安全管理器的checkRead方法,以确保允许创建映像。

        参数
        filename - 包含可识别文件格式的像素数据的文件的名称。
        结果
        从指定文件获取其像素数据的图像。
        异常
        SecurityException - 如果存在安全管理器且其checkRead方法不允许该操作。
        另请参见:
        getImage(java.lang.String)
      • createImage

        public abstract Image createImage​(URL url)
        返回从指定的URL获取像素数据的图像。 返回的Image是一个新对象,不会与此方法的任何其他调用者或其getImage变体共享。

        此方法首先检查是否安装了安全管理器。 如果是,则该方法使用相应的权限调用安全管理器的checkPermission方法,以确保允许创建映像。 如果与指定URL的连接需要URLPermissionSocketPermission ,则URLPermission用于安全检查。

        参数
        url - 用于获取像素数据的URL。
        结果
        从指定的URL获取其像素数据的图像。
        异常
        SecurityException - 如果存在安全管理器且其checkPermission方法不允许该操作。
        另请参见:
        getImage(java.net.URL)
      • prepareImage

        public abstract boolean prepareImage​(Image image,
                                             int width,
                                             int height,
                                             ImageObserver observer)
        准备要渲染的图像。

        如果width和height参数的值都是-1 ,则此方法准备要在默认屏幕上呈现的图像; 否则,此方法准备一个图像,以便在指定的宽度和高度的默认屏幕上进行渲染。

        图像数据在另一个线程中异步下载,并生成图像的适当缩放的屏幕表示。

        该方法由组件prepareImage调用。

        可以使用ImageObserver接口的定义找到有关此方法返回的标志的信息。

        参数
        image - 准备屏幕表示的图像。
        width - 所需屏幕表示的宽度,或 -1
        height - 所需屏幕表示的高度,或 -1
        observer - 正在准备图像时要通知的 ImageObserver对象。
        结果
        true如果图像已经完全准备好; 否则为false
        另请参见:
        Component.prepareImage(java.awt.Image, java.awt.image.ImageObserver)Component.prepareImage(java.awt.Image, int, int, java.awt.image.ImageObserver)ImageObserver
      • createImage

        public Image createImage​(byte[] imagedata)
        创建一个图像,对存储在指定字节数组中的图像进行解码。

        数据必须采用此工具包支持的某种图像格式,如GIF或JPEG。

        参数
        imagedata - 字节数组,表示支持的图像格式的图像数据。
        结果
        一个图像。
        从以下版本开始:
        1.1
      • createImage

        public abstract Image createImage​(byte[] imagedata,
                                          int imageoffset,
                                          int imagelength)
        创建一个图像,该图像对存储在指定字节数组中的图像进行解码,并以指定的偏移量和长度进行解码。 数据必须采用此工具包支持的某种图像格式,如GIF或JPEG。
        参数
        imagedata - 字节数组,表示支持的图像格式的图像数据。
        imageoffset - 数组中数据开头的偏移量。
        imagelength - 数组中数据的长度。
        结果
        一个图像。
        从以下版本开始:
        1.1
      • getPrintJob

        public abstract PrintJob getPrintJob​(Frame frame,
                                             String jobtitle,
                                             Properties props)
        获取PrintJob对象,该对象是在工具包平台上启动打印操作的结果。

        此方法的每个实际实现应首先检查是否安装了安全管理器。 如果有,该方法应调用安全管理器的checkPrintJobAccess方法以确保允许启动打印操作。 如果使用默认实现checkPrintJobAccess (即,该方法未被覆盖),则会导致调用具有RuntimePermission("queuePrintJob")权限的安全管理器checkPermission方法。

        参数
        frame - 打印对话框的父级。 不能为空。
        jobtitle - PrintJob的标题。 空标题相当于“”。
        props - 包含零个或多个属性的Properties对象。 属性未标准化,并且在各实现之间不一致。 因此,需要作业和页面控制的PrintJobs应使用此函数的版本,该函数采用JobAttributes和PageAttributes对象。 可以更新此对象以反映退出时用户的作业选择。 可能为空。
        结果
        PrintJob对象,如果用户取消了打印作业, null
        异常
        NullPointerException - 如果frame为null
        SecurityException - 如果不允许此线程启动打印作业请求
        从以下版本开始:
        1.1
        另请参见:
        GraphicsEnvironment.isHeadless()PrintJobRuntimePermission
      • getPrintJob

        public PrintJob getPrintJob​(Frame frame,
                                    String jobtitle,
                                    JobAttributes jobAttributes,
                                    PageAttributes pageAttributes)
        获取PrintJob对象,该对象是在工具包平台上启动打印操作的结果。

        此方法的每个实际实现应首先检查是否安装了安全管理器。 如果有,该方法应调用安全管理器的checkPrintJobAccess方法以确保允许启动打印操作。 如果使用默认实现checkPrintJobAccess (即,该方法未被覆盖),则会导致调用具有RuntimePermission("queuePrintJob")权限的安全管理器checkPermission方法。

        参数
        frame - 打印对话框的父级。 不能为空。
        jobtitle - PrintJob的标题。 空标题相当于“”。
        jobAttributes - 一组控制PrintJob的作业属性。 将更新属性以反映JobAttributes文档中概述的用户选择。 可能为空。
        pageAttributes - 一组控制PrintJob的页面属性。 属性将应用于作业中的每个页面。 将更新属性以反映PageAttributes文档中概述的用户选择。 可能为空。
        结果
        PrintJob对象,如果用户取消了打印作业, null
        异常
        NullPointerException - 如果frame为null
        IllegalArgumentException - 如果pageAttributes指定不同的交叉Feed和Feed分辨率。 此外,如果此线程可以访问文件系统并且jobAttributes指定print to file,并且指定的目标文件存在但是是目录而不是常规文件,则不存在但无法创建,或者由于任何其他原因无法打开。 但是,在打印到文件的情况下,如果还要求显示对话框,则用户将有机会选择文件并继续打印。 在从此方法返回之前,该对话框将确保所选输出文件有效。
        SecurityException - 如果不允许此线程启动打印作业请求,或者jobAttributes指定打印到文件,并且不允许此线程访问文件系统
        从以下版本开始:
        1.3
        另请参见:
        PrintJobGraphicsEnvironment.isHeadless()RuntimePermissionJobAttributesPageAttributes
      • beep

        public abstract void beep()
        根据本机系统设置和硬件功能发出音频蜂鸣声。
        从以下版本开始:
        1.1
      • getSystemClipboard

        public abstract Clipboard getSystemClipboard()
                                              throws HeadlessException
        获取系统剪贴板的单例实例,该实例与本机平台提供的剪贴板工具接口。 此剪贴板支持Java程序和使用本机剪贴板工具的本机应用程序之间的数据传输。

        除了系统返回的任何和所有默认格式文本之外,Clipboard的getTransferData()方法还有以下几种版本:

        • 选择DataFlavor.stringFlavor
        • DataFlavor.plainTextFlavor( 不建议使用
        java.awt.datatransfer.StringSelection ,如果请求的风味为DataFlavor.plainTextFlavor或等效风味,则返回Reader。 注:系统剪贴板的的行为getTransferData()方法为DataFlavor.plainTextFlavor ,和等价DataFlavor与定义不一致DataFlavor.plainTextFlavor 因此, 不推荐使用DataFlavor.plainTextFlavor和等效口味的支持。

        此方法的每个实际实现应首先检查是否安装了安全管理器。 如果有,该方法应调用安全管理器的checkPermission方法来检查AWTPermission("accessClipboard")

        结果
        系统剪贴板
        异常
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true
        从以下版本开始:
        1.1
        另请参见:
        GraphicsEnvironment.isHeadless()ClipboardStringSelectionDataFlavor.stringFlavorDataFlavor.plainTextFlavorReaderAWTPermission
      • getSystemSelection

        public Clipboard getSystemSelection()
                                     throws HeadlessException
        获取系统选择的单例实例作为Clipboard对象。 这允许应用程序读取和修改当前的系统范围选择。

        只要用户使用鼠标或键盘选择文本,应用程序就负责更新系统选择。 通常,这是通过安装来实现FocusListener所有Component S的支持文本选择,和,之间FOCUS_GAINEDFOCUS_LOST传递到事件Component ,更新系统选择Clipboard当内选择更改Component 正确更新系统选择可确保Java应用程序与本机应用程序和在系统上同时运行的其他Java应用程序正确交互。 请注意, java.awt.TextComponentjavax.swing.text.JTextComponent已遵守此政策。 使用这些类及其子类时,开发人员无需编写任何其他代码。

        某些平台不支持系统选择Clipboard 在这些平台上,此方法将返回null 在这种情况下,如上所述,应用程序免除其更新系统选择Clipboard责任。

        此方法的每个实际实现应首先检查是否安装了安全管理器。 如果有,该方法应调用安全管理器的checkPermission方法来检查AWTPermission("accessClipboard")

        结果
        如果本机平台不支持系统选择,系统选择为 Clipboardnull Clipboard
        异常
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true
        从以下版本开始:
        1.4
        另请参见:
        ClipboardFocusListenerFocusEvent.FOCUS_GAINEDFocusEvent.FOCUS_LOSTTextComponentJTextComponentAWTPermissionGraphicsEnvironment.isHeadless()
      • getMenuShortcutKeyMask

        @Deprecated(since="10")
        public int getMenuShortcutKeyMask()
                                   throws HeadlessException
        Deprecated.
        It is recommended that extended modifier keys and getMenuShortcutKeyMaskEx() be used instead
        确定哪个修饰键是菜单快捷键的相应加速键。

        MenuShortcut类中包含的菜单快捷方式由MenuBar类处理。

        默认情况下,此方法返回Event.CTRL_MASK 如果Control键不是加速器的正确键,则工具包实现应覆盖此方法。

        结果
        Event类上的修饰符掩码,用于此工具包上的菜单快捷方式。
        异常
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true
        从以下版本开始:
        1.1
        另请参见:
        GraphicsEnvironment.isHeadless()MenuBarMenuShortcut
      • getMenuShortcutKeyMaskEx

        public int getMenuShortcutKeyMaskEx()
                                     throws HeadlessException
        确定哪个扩展修饰键是菜单快捷键的相应加速键。

        菜单快捷方式,其体现在MenuShortcut类,由处理MenuBar类。

        默认情况下,此方法返回InputEvent.CTRL_DOWN_MASK 如果Control键不是加速器的正确键,则工具包实现应覆盖此方法。

        结果
        InputEvent类上的修饰符掩码,用于此工具包上的菜单快捷方式
        异常
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true
        从以下版本开始:
        10
        另请参见:
        GraphicsEnvironment.isHeadless()MenuBarMenuShortcut
      • getNativeContainer

        protected static Container getNativeContainer​(Component c)
        给予本机对等体在给定本机组件的情况下查询本机容器的能力(例如,直接父对象可以是轻量级的)。
        参数
        c - 要为其获取容器的组件
        结果
        组件的本机容器对象
      • createCustomCursor

        public Cursor createCustomCursor​(Image cursor,
                                         Point hotSpot,
                                         String name)
                                  throws IndexOutOfBoundsException,
                                         HeadlessException
        创建一个新的自定义光标对象。 如果要显示的图像无效,则将隐藏光标(使其完全透明),并将热点设置为(0,0)。

        请注意,多帧图像无效,可能导致此方法挂起。

        参数
        cursor - 激活光标时显示的图像
        hotSpot - 大光标热点的X和Y; hotSpot值必须小于getBestCursorSize返回的getBestCursorSize
        name - 游标的本地化描述,用于Java Accessibility使用
        结果
        光标已创建
        异常
        IndexOutOfBoundsException - 如果hotSpot值超出游标范围
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true
        从以下版本开始:
        1.2
        另请参见:
        GraphicsEnvironment.isHeadless()
      • getBestCursorSize

        public Dimension getBestCursorSize​(int preferredWidth,
                                           int preferredHeight)
                                    throws HeadlessException
        返回最接近所需大小的受支持光标尺寸。 只支持单个游标大小的系统将返回该大小,而不管所需的大小。 不支持自定义游标的系统将返回0,0的维度。

        注意:如果使用的图像的尺寸与支持的尺寸不匹配(由此方法返回),则Toolkit实现将尝试将图像的大小调整为支持的大小。 由于难以转换低分辨率图像,因此不能保证不支持尺寸的光标图像的质量。 因此,建议调用此方法并使用适当的图像,以便不进行图像转换。

        参数
        preferredWidth - 组件要使用的首选光标宽度。
        preferredHeight - 组件要使用的首选光标高度。
        结果
        最接近匹配的受支持游标大小,如果Toolkit实现不支持自定义游标,则维度为0,0。
        异常
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true
        从以下版本开始:
        1.2
        另请参见:
        GraphicsEnvironment.isHeadless()
      • getMaximumCursorColors

        public int getMaximumCursorColors()
                                   throws HeadlessException
        返回Toolkit在自定义光标选项板中支持的最大颜色数。

        注意:如果使用的图像在其调色板中的颜色多于支持的最大值,则Toolkit实现将尝试将调色板展平到最大值。 由于难以转换低分辨率图像,因此不能保证光标图像的质量比系统支持的颜色多。 因此,建议调用此方法并使用适当的图像,以便不进行图像转换。

        结果
        最大颜色数,如果此Toolkit实现不支持自定义游标,则为零。
        异常
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true
        从以下版本开始:
        1.2
        另请参见:
        GraphicsEnvironment.isHeadless()
      • isFrameStateSupported

        public boolean isFrameStateSupported​(int state)
                                      throws HeadlessException
        返回Toolkit是否支持Frame的此状态。 此方法告知是否支持最大化或图标化的UI概念 对于像Frame.ICONIFIED|Frame.MAXIMIZED_VERT这样的“复合”状态,它总是返回false。 换句话说,经验法则是只有具有单个帧状态常量作为参数的查询才有意义。

        请注意,支持给定概念是依赖于平台的功能。 由于本机限制,Toolkit对象可能会报告支持的特定状态,但同时Toolkit对象将无法将状态应用于给定帧。 这种情况有两个后果:

        • 只有当前方法的返回值false实际上表明不支持给定的状态。 如果该方法返回true则对于特定帧,给定状态可能仍然不被支持和/或不可用。
        • 开发人员应考虑检查通过WindowEvent收到的WindowEvent.getNewState()WindowEvent.getNewState()方法的值,而不是假设将明确应用给予setExtendedState()方法的状态。 有关更多信息,请参阅Frame.setExtendedState(int)方法的文档。
        参数
        state - 一个命名的帧状态常量。
        结果
        true此工具包实现支持此帧状态,否则为 false
        异常
        HeadlessException - 如果 GraphicsEnvironment.isHeadless()返回 true
        从以下版本开始:
        1.4
        另请参见:
        Window.addWindowStateListener(java.awt.event.WindowStateListener)
      • getProperty

        public static String getProperty​(String key,
                                         String defaultValue)
        获取具有指定键和默认值的属性。 如果未找到该属性,则此方法返回defaultValue。
        参数
        key - 关键
        defaultValue - 默认值
        结果
        如果找不到该属性,则该属性的值或默认值
      • getSystemEventQueue

        public final EventQueue getSystemEventQueue()
        获取应用程序或applet的EventQueue实例。 根据Toolkit实现,可以为不同的applet返回不同的EventQueues。 因此,小程序不应假设此方法返回的EventQueue实例将由其他小程序或系统共享。

        如果有安全管理器,则调用其checkPermission方法以检查AWTPermission("accessEventQueue")

        结果
        EventQueue对象
        异常
        SecurityException - 如果设置了安全管理器,则拒绝访问 EventQueue
        另请参见:
        AWTPermission
      • getSystemEventQueueImpl

        protected abstract EventQueue getSystemEventQueueImpl()
        获取应用程序或applet的EventQueue实例,而不检查访问权限。 出于安全原因,只能从Toolkit子类调用此方法。
        结果
        EventQueue对象
      • createDragGestureRecognizer

        public <T extends DragGestureRecognizer> T createDragGestureRecognizer​(<T> abstractRecognizerClass,
                                                                               DragSource ds,
                                                                               Component c,
                                                                               int srcActions,
                                                                               DragGestureListener dgl)
        创建请求的抽象DragGestureRecognizer类的具体的,平台相关的子类,并将其与指定的DragSource,Component和DragGestureListener相关联。 子类应重写此方法以提供自己的实现
        参数类型
        T - 要创建的DragGestureRecognizer的类型
        参数
        abstractRecognizerClass - 所需识别器的抽象类
        ds - DragSource
        c - DragGestureRecognizer的Component目标
        srcActions - 手势允许的操作
        dgl - DragGestureListener
        结果
        新对象或null。 如果GraphicsEnvironment.isHeadless()返回true,则始终返回null。
        另请参见:
        GraphicsEnvironment.isHeadless()
      • getDesktopProperty

        public final Object getDesktopProperty​(String propertyName)
        获取指定桌面属性的值。 桌面属性是Toolkit全局性资源的唯一命名值。 通常它也是底层平台相关桌面设置的抽象表示。 有关AWT支持的桌面属性的更多信息,请参阅AWT Desktop Properties
        参数
        propertyName - 房产名称
        结果
        指定桌面属性的值
      • setDesktopProperty

        protected final void setDesktopProperty​(String name,
                                                Object newValue)
        将指定的桌面属性设置为指定的值,并触发属性更改事件以通知任何侦听器该值已更改。
        参数
        name - 财产名称
        newValue - 新属性值
      • lazilyLoadDesktopProperty

        protected Object lazilyLoadDesktopProperty​(String name)
        懒惰地评估桌面属性值的机会。
        参数
        name - 名称
        结果
        桌面属性或null
      • initializeDesktopProperties

        protected void initializeDesktopProperties()
        initializeDesktopProperties
      • getPropertyChangeListeners

        public PropertyChangeListener[] getPropertyChangeListeners​(String propertyName)
        返回与桌面属性的指定名称关联的所有属性更改侦听器的数组。
        参数
        propertyName - 命名属性
        结果
        所有 PropertyChangeListener对象与桌面属性的指定名称关联,如果没有添加此类侦听器则为空数组
        从以下版本开始:
        1.4
        另请参见:
        PropertyChangeSupport.getPropertyChangeListeners(String)
      • isModalityTypeSupported

        public abstract boolean isModalityTypeSupported​(Dialog.ModalityType modalityType)
        返回此工具包是否支持给定的模态类型。 如果创建了具有不受支持的模态类型的对话框,则使用Dialog.ModalityType.MODELESS
        参数
        modalityType - 要由此工具包检查以获得支持的模态类型
        结果
        true ,如果当前工具包支持给定的模态类型, false
        从以下版本开始:
        1.6
        另请参见:
        Dialog.ModalityTypeDialog.getModalityType()Dialog.setModalityType(java.awt.Dialog.ModalityType)
      • addAWTEventListener

        public void addAWTEventListener​(AWTEventListener listener,
                                        long eventMask)
        添加AWTEventListener以接收符合给定eventMask系统范围内调度的所有AWTEvent。

        首先,如果有安全管理器, checkPermission AWTPermission("listenToAllAWTEvents")权限调用其checkPermission方法。 这可能会导致SecurityException。

        eventMask是要接收的事件类型的位掩码。 它是通过对AWTEvent定义的事件掩码进行按位OR运算构建的。

        注意:建议不要将事件侦听器用于正常的应用程序,但仅用于支持特殊用途设施,包括对可访问性,事件记录/回放和诊断跟踪的支持。 如果listener为null,则不会抛出异常并且不执行任何操作。

        参数
        listener - 事件侦听器。
        eventMask - 要接收的事件类型的位掩码
        异常
        SecurityException - 如果存在安全管理器且其 checkPermission方法不允许该操作。
        从以下版本开始:
        1.2
        另请参见:
        removeAWTEventListener(java.awt.event.AWTEventListener)getAWTEventListeners()SecurityManager.checkPermission(java.security.Permission)AWTEventAWTPermissionAWTEventListenerAWTEventListenerProxy
      • mapInputMethodHighlight

        public abstract Map<TextAttribute,​?> mapInputMethodHighlight​(InputMethodHighlight highlight)
                                                                    throws HeadlessException
        返回给定输入法高亮的抽象级别描述的可视属性的映射,如果未找到映射,则返回null。 输入法高亮的样式字段将被忽略。 返回的地图是不可修改的。
        参数
        highlight - 输入法高亮显示
        结果
        样式属性映射,或 null
        异常
        HeadlessException - 如果 GraphicsEnvironment.isHeadless返回true
        从以下版本开始:
        1.3
        另请参见:
        GraphicsEnvironment.isHeadless()
      • areExtraMouseButtonsEnabled

        public boolean areExtraMouseButtonsEnabled()
                                            throws HeadlessException
        报告是否允许处理额外鼠标按钮的事件并将其发布到EventQueue
        要更改返回值,必须在Toolkit类初始化之前设置sun.awt.enableExtraMouseButtons属性。 可以通过以下命令在应用程序启动时完成此设置:
          java -Dsun.awt.enableExtraMouseButtons=false Application 
        或者,可以使用以下代码在应用程序中设置属性:
          System.setProperty("sun.awt.enableExtraMouseButtons", "true"); 
        Toolkit类初始化之前。 如果不是由时间设定Toolkit类的初始化,此属性将被初始化true Toolkit类初始化后更改此值将不起作用。
        结果
        true如果允许处理和发布来自额外鼠标按钮的事件; 否则为false
        异常
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true
        从以下版本开始:
        1.7
        另请参见:
        System.getProperty(String propertyName)System.setProperty(String propertyName, String value)EventQueue