模块 java.desktop
 java.awt

类 Toolkit

java.lang.Object
java.awt.Toolkit

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

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

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

大多数应用程序不应直接调用此类中的任何方法。 Toolkit 定义的方法是将 java.awt 包中独立于平台的类与其在 java.awt.peer 中的对应类连接起来的“粘合剂”。 Toolkit 定义的一些方法直接查询本机操作系统。

自从:
1.0
  • 字段详细信息

    • desktopProperties

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

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

    • Toolkit

      protected Toolkit()
      构造一个 Toolkit
  • 方法详情

    • loadSystemColors

      protected void loadSystemColors(int[] systemColors) throws HeadlessException
      用当前系统颜色值填充作为参数提供的整数数组。
      参数:
      systemColors - 整数数组。
      抛出:
      HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true
      自从:
      1.1
      参见:
    • setDynamicLayout

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

      protected boolean isDynamicLayoutSet() throws HeadlessException
      返回容器的布局是在调整大小期间动态验证,还是在调整大小完成后静态验证。注意:此方法返回以编程方式设置的值;它不反映操作系统或窗口管理器级别对调整大小动态布局的支持,或当前操作系统或窗口管理器设置。可以使用 getDesktopProperty("awt.dynamicLayoutSupported") 查询操作系统/WM 支持。
      返回:
      如果容器的验证是动态完成的,则为 true;如果在调整大小完成后进行验证,则为 false。
      抛出:
      HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true
      自从:
      1.4
      参见:
    • isDynamicLayoutActive

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

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

      返回:
      如果调整大小时容器的动态布局当前处于活动状态,则为 true,否则为 false。
      抛出:
      HeadlessException - 如果 GraphicsEnvironment.isHeadless() 方法返回 true
      自从:
      1.4
      参见:
    • getScreenSize

      public abstract Dimension  getScreenSize() throws HeadlessException
      获取屏幕的大小。在具有多个显示器的系统上,使用主显示器。 GraphicsConfigurationGraphicsDevice 提供了多屏感知显示尺寸。
      返回:
      此工具包屏幕的大小,以像素为单位。
      抛出:
      HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true
      参见:
    • getScreenResolution

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

      public Insets  getScreenInsets(GraphicsConfiguration  gc) throws HeadlessException
      获取屏幕的insets。
      参数:
      gc - 一个 GraphicsConfiguration
      返回:
      此工具包屏幕的insets,以像素为单位。
      抛出:
      HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true
      自从:
      1.4
      参见:
    • getColorModel

      public abstract ColorModel  getColorModel() throws HeadlessException
      确定此工具包屏幕的颜色模型。

      ColorModel 是一个抽象类,它封装了在图像的像素值与其红色、绿色、蓝色和 alpha 组件之间进行转换的能力。

      此工具包方法由 Component 类的 getColorModel 方法调用。

      返回:
      此工具包屏幕的颜色模型。
      抛出:
      HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true
      参见:
    • getFontList

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

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

      • TimesRoman(使用 Serif)
      • Helvetica(使用 SansSerif)
      • Courier(使用等宽)

      ZapfDingbats 字体名称在 1.1 中也已弃用,但这些字符在 Unicode 中定义为从 0x2700 开始,并且从 1.1 开始,Java 支持这些字符。

      返回:
      此工具包中可用字体的名称。
      参见:
    • getFontMetrics

      @Deprecated public abstract FontMetrics  getFontMetrics(Font  font)
      已弃用。
      从 JDK 1.2 版开始,由 Font 方法 getLineMetrics 取代。
      获取用于呈现字体的屏幕设备指标。
      参数:
      font - 一种字体
      返回:
      此工具包中指定字体的屏幕指标
      参见:
    • 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 工具包后加载。

      如果通过系统属性“javax.accessibility.assistive_technologies”提供的辅助技术提供者列表是空字符串或仅包含 空白 个字符,则会被忽略。所有其他错误都通过 AWTError 异常处理。

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

      实现要求:
      如果没有使用系统属性指定辅助技术服务提供者,则此实现将查找位于如下位置的属性文件:
      • ${user.home}/.accessibility.properties
      • ${java.home}/conf/accessibility.properties
      将仅查阅这些文件中的第一个。请求的服务提供商通过设置 assistive_technologies= 属性指定。可以指定单个提供者或以逗号分隔的提供者列表。
      返回:
      默认工具包。
      抛出:
      AWTError - 加载辅助技术时出错。
      参见:
    • getImage

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

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

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

      参数:
      filename - 包含可识别文件格式的像素数据的文件的名称。
      返回:
      从指定文件获取像素数据的图像。
      抛出:
      SecurityException - 如果安全管理器存在并且其 checkRead 方法不允许该操作。
      参见:
    • getImage

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

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

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

      参数:
      url - 用于获取像素数据的 URL。
      返回:
      从指定 URL 获取其像素数据的图像。
      抛出:
      SecurityException - 如果安全管理器存在并且其 checkPermission 方法不允许该操作。
      参见:
    • createImage

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

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

      参数:
      filename - 包含可识别文件格式的像素数据的文件的名称。
      返回:
      从指定文件获取像素数据的图像。
      抛出:
      SecurityException - 如果安全管理器存在并且其 checkRead 方法不允许该操作。
      参见:
    • createImage

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

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

      参数:
      url - 用于获取像素数据的 URL。
      返回:
      从指定 URL 获取其像素数据的图像。
      抛出:
      SecurityException - 如果安全管理器存在并且其 checkPermission 方法不允许该操作。
      参见:
    • 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否则。
      参见:
    • checkImage

      public abstract int checkImage(Image  image, int width, int height, ImageObserver  observer)
      指示正在准备显示的指定图像的构建状态。

      如果 width 和 height 参数的值都是 -1 ,则此方法返回此工具包中指定图像的屏幕表示的构造状态。否则,此方法返回指定宽度和高度的图像缩放表示的构造状态。

      此方法不会导致图像开始加载。应用程序必须调用 prepareImage 以强制加载图像。

      此方法由组件的 checkImage 方法调用。

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

      参数:
      image - 正在检查其状态的图像。
      width - 正在检查其状态的缩放版本的宽度,或 -1
      height - 正在检查其状态的缩放版本的高度,或 -1
      observer - 在准备图像时要通知的 ImageObserver 对象。
      返回:
      当前可用的图像数据的 ImageObserver 标志的按位包含 OR
      参见:
    • createImage

      public abstract Image  createImage(ImageProducer  producer)
      使用指定的图像生成器创建图像。
      参数:
      producer - 要使用的图像生成器。
      返回:
      具有指定图像制作者的图像。
      参见:
    • 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 - 如果帧为空
      SecurityException - 如果不允许此线程发起打印作业请求
      自从:
      1.1
      参见:
    • 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 - 如果帧为空
      IllegalArgumentException - 如果 pageAttributes 指定不同的交叉供稿和供稿分辨率。此外,如果此线程可以访问文件系统并且 jobAttributes 指定打印到文件,并且指定的目标文件存在但是目录而不是常规文件,不存在但无法创建,或者由于任何其他原因无法打开。然而,在打印到文件的情况下,如果还请求显示对话框,则用户将有机会选择文件并继续打印。该对话框将确保所选输出文件在从此方法返回之前有效。
      SecurityException - 如果不允许此线程发起打印作业请求,或者如果 jobAttributes 指定打印到文件,并且不允许此线程访问文件系统
      自从:
      1.3
      参见:
    • 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 或等效风格,则返回 Reader。笔记:系统剪贴板的 getTransferData() 方法对 DataFlavor.plainTextFlavor 和等效 DataFlavors 的行为与 DataFlavor.plainTextFlavor 的定义不一致。因此,对 DataFlavor.plainTextFlavor 和等效风格的支持是弃用.

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

      返回:
      系统剪贴板
      抛出:
      HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true
      自从:
      1.1
      参见:
    • getSystemSelection

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

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

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

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

      返回:
      系统选择为 Clipboard ,如果本机平台不支持系统选择 Clipboard 则为 null
      抛出:
      HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true
      自从:
      1.4
      参见:
    • getMenuShortcutKeyMask

      @Deprecated (since ="10") public int getMenuShortcutKeyMask() throws HeadlessException
      已弃用。
      建议改用扩展修饰键和getMenuShortcutKeyMaskEx()
      确定哪个修饰键是菜单快捷方式的适当加速键。

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

      默认情况下,此方法返回 Event.CTRL_MASK 。如果Controlkey 不是加速器的正确键。

      返回:
      Event 类上的修饰符掩码,用于此工具包上的菜单快捷方式。
      抛出:
      HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true
      自从:
      1.1
      参见:
    • getMenuShortcutKeyMaskEx

      public int getMenuShortcutKeyMaskEx() throws HeadlessException
      确定哪个扩展修改键是菜单快捷方式的适当加速键。

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

      默认情况下,此方法返回 InputEvent.CTRL_DOWN_MASK 。如果Controlkey 不是加速器的正确键。

      返回:
      InputEvent 类上的修饰符掩码,用于此工具包上的菜单快捷方式
      抛出:
      HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true
      自从:
      10
      参见:
    • getLockingKeyState

      public boolean getLockingKeyState(int keyCode) throws UnsupportedOperationException
      返回键盘上给定的锁定键当前是否处于“打开”状态。有效的密钥代码是 VK_CAPS_LOCK VK_NUM_LOCK VK_SCROLL_LOCK VK_KANA_LOCK
      参数:
      keyCode - 关键代码
      返回:
      true 如果给定键当前处于“打开”状态;否则false
      抛出:
      IllegalArgumentException - 如果 keyCode 不是有效的键码之一
      UnsupportedOperationException - 如果主机系统不允许以编程方式获取此键的状态,或者键盘没有此键
      HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true
      自从:
      1.3
      参见:
    • setLockingKeyState

      public void setLockingKeyState(int keyCode, boolean on) throws UnsupportedOperationException
      设置键盘上给定锁定键的状态。有效的密钥代码是 VK_CAPS_LOCK VK_NUM_LOCK VK_SCROLL_LOCK VK_KANA_LOCK

      根据平台的不同,设置锁定键的状态可能涉及事件处理,因此可能无法通过 getLockingKeyState 立即观察到。

      参数:
      keyCode - 关键代码
      on - 密钥的状态
      抛出:
      IllegalArgumentException - 如果 keyCode 不是有效的键码之一
      UnsupportedOperationException - 如果主机系统不允许以编程方式设置此键的状态,或者键盘没有此键
      HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true
      自从:
      1.3
      参见:
    • 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;热点值必须小于 getBestCursorSize 返回的维度
      name - 游标的本地化描述,供 Java 辅助功能使用
      返回:
      创建的游标
      抛出:
      IndexOutOfBoundsException - 如果热点值超出光标范围
      HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true
      自从:
      1.2
      参见:
    • getBestCursorSize

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

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

      参数:
      preferredWidth - 组件想要使用的首选光标宽度。
      preferredHeight - 组件想要使用的首选光标高度。
      返回:
      最接近匹配的受支持游标大小,如果工具包实现不支持自定义游标,则尺寸为 0,0。
      抛出:
      HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true
      自从:
      1.2
      参见:
    • getMaximumCursorColors

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

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

      返回:
      最大颜色数,如果此 Toolkit 实现不支持自定义光标,则为零。
      抛出:
      HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true
      自从:
      1.2
      参见:
    • isFrameStateSupported

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

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

      • 只有当前方法的false 的返回值实际上表明不支持给定的状态。如果该方法返回 true,则给定状态对于特定帧可能仍然不受支持和/或不可用。
      • 开发人员应考虑检查通过 WindowStateListener 接收到的 WindowEventWindowEvent.getNewState() 方法的值,而不是假设一定会应用提供给 setExtendedState() 方法的状态。有关详细信息,请参阅 Frame.setExtendedState(int) 方法的文档。
      参数:
      state - 命名的帧状态常量之一。
      返回:
      true 此框架状态是否受此工具包实现的支持,false 否则。
      抛出:
      HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true
      自从:
      1.4
      参见:
    • getProperty

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

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

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

      返回:
      EventQueue 对象
      抛出:
      SecurityException - 如果设置了安全管理器并且它拒绝访问 EventQueue
      参见:
    • 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。
      参见:
    • getDesktopProperty

      public final Object  getDesktopProperty(String  propertyName)
      获取指定桌面属性的值。桌面属性是资源的唯一命名值,本质上是 Toolkit 全局资源。通常它也是底层平台相关桌面设置的抽象表示。有关 AWT 支持的桌面属性的更多信息,请参阅 AWT 桌面属性
      参数:
      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
    • addPropertyChangeListener

      public void addPropertyChangeListener(String  name, PropertyChangeListener  pcl)
      为指定的桌面属性添加指定的属性更改监听器。添加 PropertyChangeListenerProxy 对象时,将忽略其属性名称,并添加包装的监听器。如果 namenullpclnull ,则不会抛出异常并且不会执行任何操作。
      参数:
      name - 要监听的属性的名称
      pcl - 属性更改监听器
      自从:
      1.2
      参见:
    • removePropertyChangeListener

      public void removePropertyChangeListener(String  name, PropertyChangeListener  pcl)
      删除指定桌面属性的指定属性更改监听器。删除 PropertyChangeListenerProxy 对象时,将忽略其属性名称,并删除包装的监听器。如果 namenullpclnull ,则不会抛出异常并且不会执行任何操作。
      参数:
      name - 要删除的属性的名称
      pcl - 属性更改监听器
      自从:
      1.2
      参见:
    • getPropertyChangeListeners

      public PropertyChangeListener [] getPropertyChangeListeners()
      返回在此工具包上注册的所有属性更改监听器的数组。返回的数组包含 PropertyChangeListenerProxy 个对象,这些对象将监听器与桌面属性的名称相关联。
      返回:
      此工具包的所有 PropertyChangeListener 对象都包含在 java.beans.PropertyChangeListenerProxy 对象中,如果没有添加监听器,则为空数组
      自从:
      1.4
      参见:
    • getPropertyChangeListeners

      public PropertyChangeListener [] getPropertyChangeListeners(String  propertyName)
      返回与桌面属性的指定名称关联的所有属性更改监听的数组。
      参数:
      propertyName - 命名属性
      返回:
      与桌面属性的指定名称关联的所有 PropertyChangeListener 对象,如果未添加此类监听器,则为空数组
      自从:
      1.4
      参见:
    • isAlwaysOnTopSupported

      public boolean isAlwaysOnTopSupported()
      返回此工具包是否支持永远在线模式。要检测特定窗口是否支持永远在线模式,请使用 Window.isAlwaysOnTopSupported()
      返回:
      true ,如果当前工具包支持永远在线模式,否则返回 false
      自从:
      1.6
      参见:
    • isModalityTypeSupported

      public abstract boolean isModalityTypeSupported(Dialog.ModalityType  modalityType)
      返回此工具包是否支持给定的模态类型。如果创建了具有不受支持的模态类型的对话,则使用 Dialog.ModalityType.MODELESS 代替。
      参数:
      modalityType - 此工具包要检查支持的模态类型
      返回:
      true,如果当前工具包支持给定的模态类型,false否则
      自从:
      1.6
      参见:
    • isModalExclusionTypeSupported

      public abstract boolean isModalExclusionTypeSupported(Dialog.ModalExclusionType  modalExclusionType)
      返回此工具包是否支持给定的模态排除类型。如果在窗口上设置了不受支持的模态排除类型属性,则会改用 Dialog.ModalExclusionType.NO_EXCLUDE
      参数:
      modalExclusionType - 此工具包要检查支持的模态排除类型
      返回:
      true ,如果当前工具包支持给定的模态排除类型,false 否则
      自从:
      1.6
      参见:
    • addAWTEventListener

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

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

      eventMask 是要接收的事件类型的位掩码。它是通过将 AWTEvent 中定义的事件掩码按位或运算在一起构建的。

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

      参数:
      listener - 事件监听器。
      eventMask - 要接收的事件类型的位掩码
      抛出:
      SecurityException - 如果安全管理器存在且其 checkPermission 方法不允许该操作。
      自从:
      1.2
      参见:
    • removeAWTEventListener

      public void removeAWTEventListener(AWTEventListener  listener)
      从接收分派的 AWTEvents 中删除 AWTEventListener。

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

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

      参数:
      listener - 事件监听器。
      抛出:
      SecurityException - 如果安全管理器存在且其 checkPermission 方法不允许该操作。
      自从:
      1.2
      参见:
    • getAWTEventListeners

      public AWTEventListener [] getAWTEventListeners()
      返回在此工具包上注册的所有 AWTEventListener 的数组。如果有安全管理器,它的 checkPermission 方法将以 AWTPermission("listenToAllAWTEvents") 权限调用。这可能会导致 SecurityException。监听器可以在 AWTEventListenerProxy 对象中返回,其中还包含给定监听器的事件掩码。请注意,多次添加的监听器对象在返回的数组中只出现一次。
      返回:
      所有 AWTEventListener s 或一个空数组(如果当前没有注册任何监听器)
      抛出:
      SecurityException - 如果安全管理器存在且其 checkPermission 方法不允许该操作。
      自从:
      1.4
      参见:
    • getAWTEventListeners

      public AWTEventListener [] getAWTEventListeners(long eventMask)
      返回在此工具包上注册的所有 AWTEventListener 的数组,这些工具包监听 eventMask 参数中指定的所有事件类型。如果有安全管理器,它的 checkPermission 方法将以 AWTPermission("listenToAllAWTEvents") 权限调用。这可能会导致 SecurityException。监听器可以在 AWTEventListenerProxy 对象中返回,其中还包含给定监听器的事件掩码。请注意,多次添加的监听器对象在返回的数组中只出现一次。
      参数:
      eventMask - 要监听的事件类型的位掩码
      返回:
      在此工具包上针对指定事件类型注册的所有 AWTEventListener ,如果当前未注册此类监听器,则为空数组
      抛出:
      SecurityException - 如果安全管理器存在且其 checkPermission 方法不允许该操作。
      自从:
      1.4
      参见:
    • mapInputMethodHighlight

      public abstract Map <TextAttribute ,?> mapInputMethodHighlight(InputMethodHighlight  highlight) throws HeadlessException
      返回给定输入方法突出显示的抽象级别描述的视觉属性映射,如果未找到映射,则返回 null。输入方法高亮的样式字段被忽略。返回的map是不可修改的。
      参数:
      highlight - 输入法高亮
      返回:
      样式属性图,或 null
      抛出:
      HeadlessException - 如果 GraphicsEnvironment.isHeadless 返回真
      自从:
      1.3
      参见:
    • 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
      参见: