Module  java.desktop
软件包  java.awt

Class Toolkit



  • public abstract class Toolkit
    extends Object
    这个类是抽象窗口工具包的所有实际实现的抽象超类。 Toolkit类的子类用于将各种组件绑定到特定的本地工具包实现。

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

    • 滚动到指定的位置。
      例如,如果原始请求尚未被处理,则呼叫ScrollPane.setScrollPosition然后getScrollPosition可能会返回错误的值。
    • 将焦点从一个组件移动到另一个组件。
      欲了解更多信息,请参阅Timing Focus Transfers ,在一节The Swing Tutorial
    • 使顶级容器可见。
      调用setVisible(true)WindowFrame或者Dialog可能异步发生。
    • 设置顶级容器的大小或位置。
      调用setSizesetBoundssetLocation上的WindowFrameDialog被转发到底层窗口管理系统,并且可以被忽略或修改。 详见Window

    大多数应用程序不应该直接调用此类中的任何方法。 Toolkit定义的方法是将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
        控制容器的布局在调整大小期间是否动态地进行验证,或者在调整大小之后静态地进行。 使用isDynamicLayoutActive()来检测此程序是否启用此功能,并由此操作系统和/或窗口管理器支持。 请注意,此功能不支持在所有平台上,相反,在某些平台上无法关闭此功能。 在这些平台上,不支持(或始终支持)调整大小时的动态布局,设置此属性不起作用。 请注意,在某些平台上,该功能可以作为操作系统或窗口管理器的属性进行设置或取消设置。 在这样的平台上,必须在操作系统或窗口管理器级别设置动态resize属性,才能使此方法生效。 此方法不会更改底层操作系统或窗口管理器的支持或设置。 可以使用getDesktopProperty(“awt.dynamicLayoutSupported”)方法查询OS / WM支持。
        参数
        dynamic - 如果为true,则容器应在容器调整大小时重新布局其组件。 如果为false,布局将在调整大小完成后验证。
        异常
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true
        从以下版本开始:
        1.4
        另请参见:
        isDynamicLayoutSet()isDynamicLayoutActive()getDesktopProperty(String propertyName)GraphicsEnvironment.isHeadless()
      • isDynamicLayoutSet

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

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

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

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

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

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

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

        ZapfDingbats fontname在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使用。

        如果该工具包不是无头的实现,并且如果存在,则由系统属性javax.accessibility.assistive_technologies指定的AccessibilityProvider服务提供商将被加载。

        设置此属性的一个示例是使用-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对象共享所需的机制可能会继续持续到不再使用无限期的图像,因此鼓励开发人员通过使用createImage变体实现自己的图像缓存。 如果指定文件中包含的图像数据发生更改,则Image方法返回的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对象所需的机制可能会继续保持不再使用无限期的图像,因此鼓励开发人员通过使用可用的createImage变体实现自己的图像缓存。 如果存储在指定URL中的图像数据发生更改,则Image方法返回的Image对象可能仍然包含在先前调用之后从URL获取的过时信息。 以前加载的图像数据可以通过在返回的Image上调用flush方法手动丢弃。

        此方法首先检查是否安装了安全管理器。 如果是这样,该方法使用url.openConnection()。getPermission()权限调用安全管理器的checkPermission方法,以确保允许对该映像的访问。 为了与1.2之前的安全管理员兼容,如果访问被拒绝使用FilePermissionSocketPermission ,该方法会抛出SecurityException如果相应的1.1型SecurityManager.checkXXX方法也拒绝许可。

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

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

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

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

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

        此方法首先检查是否安装了安全管理器。 如果是这样,该方法使用url.openConnection()。getPermission()权限调用安全管理器的checkPermission方法,以确保允许映像创建。 为了与1.2之前的安全管理员兼容,如果访问被拒绝使用FilePermissionSocketPermission ,该方法将抛出SecurityException如果相应的1.1型SecurityManager.checkXXX方法也拒绝许可。

        参数
        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 (即,该方法不被覆盖),则这将导致对安全管理器的checkPermission方法的checkPermission ,具有RuntimePermission("queuePrintJob")权限。

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

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

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

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

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

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

        除了任何和所有默认格式文本返回的文本剪贴板的getTransferData()方法可用于以下风格:

        • 选择DataFlavor.stringFlavor
        • DataFlavor.plainTextFlavor( 已弃用
        java.awt.datatransfer.StringSelection ,如果要求的风味是DataFlavor.plainTextFlavor或相当的味道,则会返回读者。 注:系统剪贴板的的行为getTransferData()方法为DataFlavor.plainTextFlavor ,和等价DataFlavor与定义不一致DataFlavor.plainTextFlavor 正因为如此,为支持DataFlavor.plainTextFlavor ,等效flavor, 弃用

        该方法的每个实际实现应首先检查是否安装了安全管理器。 如果有的话,该方法应该调用安全管理员的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")

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

        public int getMenuShortcutKeyMask​()
                                   throws HeadlessException
        确定哪个修饰键是菜单快捷键的适当加速键。

        MenuShortcut课程体现的菜单快捷键由MenuBar课程处理。

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

        结果
        Event类上的修饰符掩码,用于此工具包上的菜单快捷方式。
        异常
        HeadlessException - 如果GraphicsEnvironment.isHeadless()返回true
        从以下版本开始:
        1.1
        另请参见:
        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 换句话说,经验法则是只有具有单个帧状态常量的查询作为参数是有意义的。

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

        • 只有本方法的返回值为false实际上表示不支持给定的状态。 如果方法返回true ,给定的状态可能仍然不被支持和/或不适用于特定的帧。
        • 开发商应考虑通过WindowEvent收到的WindowEventWindowEvent.getNewState()方法的值,而不是假定给予setExtendedState()方法的状态将被明确应用。 有关更多信息,请参阅Frame.setExtendedState(int)方法的文档。
        参数
        state - 命名帧状态常量之一。
        结果
        true是这个框架状态是由这个Toolkit实现的, 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​()
        获取应用程序或小程序的EventQueue实例。 根据Toolkit实现,可能会针对不同的小程序返回不同的EventQueues。 因此,Applet不应该假定此方法返回的EventQueue实例将被其他小程序或系统共享。

        如果有安全管理员,那么它的checkPermission方法被调用来检查AWTPermission("accessEventQueue")

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

        protected abstract EventQueue getSystemEventQueueImpl​()
        获取应用程序或小程序的EventQueue实例,而无需检查访问。 出于安全考虑,这只能从一个Toolkit子类中调用。
        结果
        EventQueue对象
      • createDragGestureRecognizer

        public <T extends DragGestureRecognizer> T createDragGestureRecognizer​(Class<T> abstractRecognizerClass,
                                                                               DragSource ds,
                                                                               Component c,
                                                                               int srcActions,
                                                                               DragGestureListener dgl)
        创建一个具体的,依赖平台的抽象DragGestureRecognizer类的子类,并将其与指定的DragSource,Component和DragGestureListener相关联。 子类应该覆盖这个来提供自己的实现
        参数类型
        T - 要创建的DragGestureRecognizer的类型
        参数
        abstractRecognizerClass - 所需识别器的抽象类
        ds - DragSource
        c - DragGestureRecognizer的组件目标
        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)
      • addAWTEventListener

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

        首先,如果有一个安全管理员,它的checkPermission方法被调用一个AWTPermission("listenToAllAWTEvents")权限。 这可能会导致SecurityException。

        eventMask是要接收的事件类型的位掩码。 它是通过对AWTEvent定义的事件掩码进行按位OR操作来AWTEvent

        注意:事件监听器使用不推荐用于正常应用程序,但仅用于支持特殊目的设施,包括对可访问性的支持,事件记录/回放和诊断跟踪。 如果侦听器为空,则不会抛出异常,也不会执行任何操作。

        参数
        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