Toolkit
类的子类用于将各种组件绑定到特定的本机工具包实现。
如果没有明确指定相反的情况,许多GUI事件可能会异步地传递给用户。 同样,许多GUI操作可能会异步执行。 这意味着如果设置了组件的状态,然后立即查询状态,则返回的值可能尚未反映所请求的更改。 此行为包括但不限于:
- 滚动到指定位置。
例如,调用ScrollPane.setScrollPosition
然后调用getScrollPosition
,如果原始请求尚未被处理,则可能返回不正确的值。 - 将焦点从一个组件移动到另一个组件。
有关更多信息,请参见转移焦点的时间,在Swing教程中的一个部分。 - 使顶级容器可见。
在Window
,Frame
或Dialog
上调用setVisible(true)
可能会异步发生。 - 设置顶级容器的大小或位置。
在Window
,Frame
或Dialog
上调用setSize
,setBounds
或setLocation
的调用将被转发到底层窗口管理系统,并可能被忽略或修改。有关更多信息,请参见Window
。
大多数应用程序不应直接调用此类中的任何方法。 Toolkit
定义的方法是将java.awt
包中的平台无关类与java.awt.peer
中的对应类连接起来的“粘合剂”。 Toolkit
定义的一些方法直接查询本机操作系统。
- 自:
- 1.0
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addAWTEventListener
(AWTEventListener listener, long eventMask) 添加一个AWTEventListener以接收符合给定eventMask
的系统范围内分派的所有AWTEvents。void
为命名的桌面属性添加指定的属性更改侦听器。boolean
报告是否允许处理并发布来自额外鼠标按钮的事件到EventQueue
中。abstract void
beep()
根据本机系统设置和硬件功能发出音频蜂鸣声。abstract int
checkImage
(Image image, int width, int height, ImageObserver observer) 指示正在准备显示的指定图像的构造状态。createCustomCursor
(Image cursor, Point hotSpot, String name) 创建一个新的自定义光标对象。<T extends DragGestureRecognizer>
TcreateDragGestureRecognizer
(Class<T> abstractRecognizerClass, DragSource ds, Component c, int srcActions, DragGestureListener dgl) 创建所请求的抽象DragGestureRecognizer类的具体、平台相关的子类,并将其与指定的DragSource、Component和DragGestureListener关联。createImage
(byte[] imagedata) 创建解码存储在指定字节数组中的图像的图像。abstract Image
createImage
(byte[] imagedata, int imageoffset, int imagelength) 创建解码存储在指定字节数组中、指定偏移量和长度的图像。abstract Image
createImage
(ImageProducer producer) 使用指定的图像生成器创建图像。abstract Image
createImage
(String filename) 返回从指定文件获取像素数据的图像。abstract Image
createImage
(URL url) 返回从指定URL获取像素数据的图像。返回在此工具包上注册的所有AWTEventListener
的数组。getAWTEventListeners
(long eventMask) 返回在此工具包上注册的所有监听指定eventMask
参数中的所有事件类型的AWTEventListener
的数组。getBestCursorSize
(int preferredWidth, int preferredHeight) 返回最接近所需尺寸的支持光标维度。abstract ColorModel
确定此工具包屏幕的颜色模型。static Toolkit
获取默认工具包。final Object
getDesktopProperty
(String propertyName) 获取指定桌面属性的值。abstract String[]
已弃用。abstract FontMetrics
getFontMetrics
(Font font) 已弃用。从JDK版本1.2开始,由Font
方法getLineMetrics
替代。abstract Image
返回从指定文件获取像素数据的图像,其格式可以是GIF、JPEG或PNG。abstract Image
返回从指定URL获取像素数据的图像。boolean
getLockingKeyState
(int keyCode) 返回键盘上给定锁定键当前是否处于“开启”状态。int
返回工具包在自定义光标调色板中支持的最大颜色数。int
已弃用。建议使用扩展修饰键和getMenuShortcutKeyMaskEx()
int
确定哪个扩展修饰键是菜单快捷方式的适当加速键。protected static Container
为本机对等体提供查询本机容器的能力,给定本机组件(例如直接父级可能是轻量级)。getPrintJob
(Frame frame, String jobtitle, JobAttributes jobAttributes, PageAttributes pageAttributes) 获取PrintJob
对象,该对象是在工具包的平台上启动打印操作的结果。abstract PrintJob
getPrintJob
(Frame frame, String jobtitle, Properties props) 获取PrintJob
对象,该对象是在工具包的平台上启动打印操作的结果。static String
getProperty
(String key, String defaultValue) 获取具有指定键和默认值的属性。返回在此工具包上注册的所有属性更改侦听器的数组。getPropertyChangeListeners
(String propertyName) 返回与指定桌面属性名称关联的所有属性更改侦听器的数组。获取屏幕的插图。abstract int
返回每英寸点数的屏幕分辨率。abstract Dimension
获取屏幕的大小。abstract Clipboard
获取与本机平台提供的剪贴板设施进行交互的系统剪贴板的单例实例。final EventQueue
获取应用程序或小程序的EventQueue实例。protected abstract EventQueue
获取应用程序或小程序的EventQueue
实例,而不检查访问权限。获取系统选择的单例实例作为Clipboard
对象。protected void
initializeDesktopPropertiesboolean
返回此工具包是否支持始终置顶模式。boolean
返回容器在调整大小时是否启用了动态布局的当前状态,该状态当前在底层操作系统和/或窗口管理器上启用。protected boolean
返回容器的布局在调整大小期间是否动态验证,或在调整大小完成后静态验证。boolean
isFrameStateSupported
(int state) 返回Toolkit是否支持Frame
的此状态。abstract boolean
isModalExclusionTypeSupported
(Dialog.ModalExclusionType modalExclusionType) 返回此工具包是否支持给定的模态排除类型。abstract boolean
isModalityTypeSupported
(Dialog.ModalityType modalityType) 返回此工具包是否支持给定的模态类型。protected Object
评估桌面属性值的延迟机会。protected void
loadSystemColors
(int[] systemColors) 使用当前系统颜色值填充作为参数提供的整数数组。abstract Map
<TextAttribute, ?> mapInputMethodHighlight
(InputMethodHighlight highlight) 返回给定输入法突出显示的抽象级别描述的视觉属性映射,如果找不到映射,则返回null。abstract boolean
prepareImage
(Image image, int width, int height, ImageObserver observer) 准备图像进行渲染。void
removeAWTEventListener
(AWTEventListener listener) 从接收分派的AWTEvents中删除一个AWTEventListener。void
删除为命名的桌面属性指定的属性更改侦听器。protected final void
setDesktopProperty
(String name, Object newValue) 将命名的桌面属性设置为指定的值,并触发属性更改事件以通知任何侦听器值已更改。void
setDynamicLayout
(boolean dynamic) 控制容器在调整大小期间是否动态验证,或在调整大小完成后静态验证。void
setLockingKeyState
(int keyCode, boolean on) 设置键盘上给定锁定键的状态。abstract void
sync()
同步此工具包的图形状态。
-
Field Details
-
desktopProperties
桌面属性。 -
desktopPropsSupport
桌面属性更改支持。
-
-
Constructor Details
-
Toolkit
protected Toolkit()构造一个Toolkit
。
-
-
Method Details
-
loadSystemColors
使用当前系统颜色值填充作为参数提供的整数数组。- 参数:
-
systemColors
- 一个整数数组。 - 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()
返回true - 自:
- 1.1
- 参见:
-
setDynamicLayout
控制容器在调整大小期间是否动态验证,或在调整大小完成后静态验证。 使用isDynamicLayoutActive()
检测此功能在此程序中是否启用,并且此功能是否由此操作系统和/或窗口管理器支持。 请注意,此功能不受所有平台支持,反之,此功能在某些平台上无法关闭。 在不支持动态调整大小的平台上(或始终支持的平台上),设置此属性不起作用。 请注意,此功能可以作为某些平台的操作系统或窗口管理器的属性设置或取消设置。 在这些平台上,必须在操作系统或窗口管理器级别设置动态调整大小属性,然后此方法才能生效。 此方法不会更改底层操作系统或窗口管理器的支持或设置。 可以使用getDesktopProperty("awt.dynamicLayoutSupported")方法查询OS/WM支持。- 参数:
-
dynamic
- 如果为true,则容器在调整大小时应重新布局其组件。如果为false,则布局将在调整大小完成后进行验证。 - 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true - 自从:
- 1.4
- 参见:
-
isDynamicLayoutSet
返回容器在调整大小时是否动态验证布局,还是在调整大小完成后静态验证。注意:此方法返回以编程方式设置的值;它不反映操作系统或窗口管理器在调整大小时动态布局的支持,或当前操作系统或窗口管理器的设置。可以使用getDesktopProperty("awt.dynamicLayoutSupported")查询OS/WM支持。- 返回:
- 如果容器的验证是动态进行的,则返回true,如果验证在调整大小完成后进行,则返回false。
- 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true - 自从:
- 1.4
- 参见:
-
isDynamicLayoutActive
返回底层操作系统和/或窗口管理器当前是否启用了调整大小时容器的动态布局。如果平台支持,可以使用setDynamicLayout(boolean)
来以编程方式启用或禁用平台动态布局。无论切换是否受支持,或者指定了true
或false
作为参数,或者根本没有调用过,此方法将返回当前平台行为,并将由JDK遵循以确定调整大小期间的布局策略。如果动态布局当前处于非活动状态,则容器在调整大小完成时重新布局其组件。因此,
Component.validate()
方法将仅在每次调整大小时调用一次。如果动态布局当前处于活动状态,则容器将在每次本机调整大小事件上重新布局其组件,并且每次都将调用validate()
方法。可以使用getDesktopProperty("awt.dynamicLayoutSupported")方法查询OS/WM支持。此属性将反映平台功能,但不足以判断它当前是否已启用。- 返回:
- 如果调整大小时容器的动态布局当前处于活动状态,则返回true,否则返回false。
- 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()方法返回true - 自从:
- 1.4
- 参见:
-
getScreenSize
获取屏幕的尺寸。在具有多个显示器的系统上,使用主显示器。多屏感知显示尺寸可从GraphicsConfiguration
和GraphicsDevice
中获取。- 返回:
- 此工具包屏幕的尺寸,以像素为单位。
- 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true - 参见:
-
getScreenResolution
返回每英寸的屏幕分辨率。- 返回:
- 此工具包屏幕分辨率,以每英寸点数为单位。
- 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true - 参见:
-
getScreenInsets
获取屏幕的插图。- 参数:
-
gc
- 一个GraphicsConfiguration
- 返回:
- 此工具包屏幕的插图,以像素为单位。
- 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true - 自从:
- 1.4
- 参见:
-
getColorModel
确定此工具包屏幕的颜色模型。ColorModel
是一个抽象类,封装了图像的像素值与其红色、绿色、蓝色和alpha分量之间的转换能力。此工具包方法由
Component
类的getColorModel
方法调用。- 返回:
- 此工具包屏幕的颜色模型。
- 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true - 参见:
-
getFontList
Deprecated.返回此工具包中可用字体的名称。对于1.1版本,以下字体名称已被弃用(替代名称如下):
- TimesRoman(使用Serif)
- Helvetica(使用SansSerif)
- Courier(使用Monospaced)
ZapfDingbats字体名称在1.1版本中也已弃用,但这些字符从0x2700开始在Unicode中定义,并且从1.1版本开始Java支持这些字符。
- 返回:
- 此工具包中可用字体的名称。
- 参见:
-
getFontMetrics
Deprecated.As of JDK version 1.2, replaced by theFont
methodgetLineMetrics
.获取用于字体渲染的屏幕设备度量。- 参数:
-
font
- 一个字体 - 返回:
- 此工具包中指定字体的屏幕度量
- 参见:
-
sync
public abstract void sync()同步此工具包的图形状态。某些窗口系统可能会对图形事件进行缓冲。此方法确保显示是最新的。对于动画很有用。
-
getDefaultToolkit
获取默认工具包。如果设置了名为
"java.awt.headless"
的系统属性为true
,则使用Toolkit
的无头实现,否则使用Toolkit
的默认特定于平台的实现。如果此Toolkit不是无头实现,并且如果存在,则将加载
AccessibilityProvider
的服务提供者,如果由系统属性javax.accessibility.assistive_technologies
指定。设置此属性的示例是使用
-Djavax.accessibility.assistive_technologies=MyServiceProvider
调用Java。除了MyServiceProvider之外,可以使用逗号分隔的列表指定其他服务提供者。在创建AWT工具包后加载服务提供者。如果通过系统属性"
javax.accessibility.assistive_technologies
"提供的辅助技术提供程序列表为空字符串或仅包含空格字符,则将其忽略。所有其他错误都通过AWTError异常处理。辅助技术提供程序列表中指定的名称用于查询每个服务提供者实现。如果请求的名称与服务提供者的名称匹配,则将调用
AccessibilityProvider.activate()
方法以激活匹配的服务提供者。- 实现要求:
-
如果未使用系统属性指定辅助技术服务提供程序,则此实现将查找位于以下位置的属性文件:
${user.home}/.accessibility.properties
${java.home}/conf/accessibility.properties
assistive_technologies=
属性来指定。可以指定单个提供程序或逗号分隔的提供程序列表。 - 返回:
- 默认工具包。
- 抛出:
-
AWTError
- 如果加载辅助技术时出现错误。 - 参见:
-
getImage
从指定文件获取像素数据的图像,其格式可以是GIF、JPEG或PNG。底层工具包尝试将对相同文件名的多个请求解析为相同的返回图像。由于用于实现共享
Image
对象的机制可能会持续保留不再使用的图像,开发人员被鼓励使用createImage
变体来实现自己的图像缓存。如果指定文件中的图像数据发生更改,则从此方法返回的Image
对象可能仍包含从先前调用后从文件加载的陈旧信息。可以通过在返回的Image
上调用flush
方法手动丢弃先前加载的图像数据。此方法首先检查是否安装了安全管理器。如果是,则该方法使用指定的文件调用安全管理器的
checkRead
方法,以确保允许访问图像。- 参数:
-
filename
- 包含以识别文件格式存储的像素数据的文件的名称。 - 返回:
- 从指定文件获取像素数据的图像。
- 抛出:
-
SecurityException
- 如果存在安全管理器且其checkRead方法不允许该操作。 - 参见:
-
getImage
从指定URL获取像素数据的图像。指定URL引用的像素数据必须是以下格式之一:GIF、JPEG或PNG。底层工具包尝试将对相同URL的多个请求解析为相同的返回图像。由于用于实现共享
Image
对象的机制可能会持续保留不再使用的图像,开发人员被鼓励使用createImage
变体来实现自己的图像缓存。如果指定URL处存储的图像数据发生更改,则从此方法返回的Image
对象可能仍包含从先前调用后从URL获取的陈旧信息。可以通过在返回的Image
上调用flush
方法手动丢弃先前加载的图像数据。此方法首先检查是否安装了安全管理器。如果是,则该方法使用相应权限调用安全管理器的
checkPermission
方法,以确保允许访问图像。如果连接到指定URL需要URLPermission
或SocketPermission
,则用于安全检查的是URLPermission
。- 参数:
-
url
- 用于获取像素数据的URL。 - 返回:
- 从指定URL获取像素数据的图像。
- 抛出:
-
SecurityException
- 如果存在安全管理器且其checkPermission方法不允许该操作。 - 参见:
-
createImage
从指定文件获取像素数据的图像。返回的图像是一个新对象,不会与此方法或其getImage变体的任何其他调用者共享。此方法首先检查是否安装了安全管理器。如果是,则该方法使用指定文件调用安全管理器的
checkRead
方法,以确保允许图像创建。- 参数:
-
filename
- 包含以识别文件格式存储的像素数据的文件的名称。 - 返回:
- 从指定文件获取像素数据的图像。
- 抛出:
-
SecurityException
- 如果存在安全管理器且其checkRead方法不允许该操作。 - 参见:
-
createImage
从指定URL获取像素数据的图像。返回的图像是一个新对象,不会与此方法或其getImage变体的任何其他调用者共享。此方法首先检查是否安装了安全管理器。如果是,则该方法使用相应权限调用安全管理器的
checkPermission
方法,以确保允许图像创建。如果连接到指定URL需要URLPermission
或SocketPermission
,则用于安全检查的是URLPermission
。- 参数:
-
url
- 用于获取像素数据的URL。 - 返回:
- 从指定URL获取像素数据的图像。
- 抛出:
-
SecurityException
- 如果存在安全管理器且其checkPermission方法不允许该操作。 - 参见:
-
prepareImage
准备图像以进行渲染。如果宽度和高度参数的值都为
-1
,则此方法将准备图像以在默认屏幕上进行渲染;否则,此方法将准备一个在指定宽度和高度上在默认屏幕上进行渲染的图像。图像数据会在另一个线程中异步下载,并生成图像的适当缩放屏幕表示。
此方法由组件的
prepareImage
方法调用。有关此方法返回的标志的信息可以在
ImageObserver
接口的定义中找到。- 参数:
-
image
- 要为其准备屏幕表示的图像。 -
width
- 所需屏幕表示的宽度,或-1
。 -
height
- 所需屏幕表示的高度,或-1
。 -
observer
- 要在准备图像时通知的ImageObserver
对象。 - 返回:
-
如果图像已完全准备,则返回
true
;否则返回false
。 - 参见:
-
checkImage
指示正在准备用于显示的指定图像的构造状态。如果宽度和高度参数的值都为
-1
,则此方法返回此工具包中指定图像的屏幕表示的构造状态。否则,此方法返回指定宽度和高度处图像的缩放表示的构造状态。此方法不会导致图像开始加载。应用程序必须调用
prepareImage
来强制加载图像。此方法由组件的
checkImage
方法调用。有关此方法返回的标志的信息可以在
ImageObserver
接口的定义中找到。- 参数:
-
image
- 正在检查其状态的图像。 -
width
- 正在检查其状态的缩放版本的宽度,或-1
。 -
height
- 正在检查其状态的缩放版本的高度,或-1
。 -
observer
- 要在准备图像时通知的ImageObserver
对象。 - 返回:
-
当前可用的图像数据的
ImageObserver
标志的按位包含OR。 - 参见:
-
createImage
使用指定的图像生成器创建图像。- 参数:
-
producer
- 要使用的图像生成器。 - 返回:
- 具有指定图像生成器的图像。
- 参见:
-
createImage
创建一个解码存储在指定字节数组中的图像。数据必须是某种图像格式,如GIF或JPEG,该格式由此工具包支持。
- 参数:
-
imagedata
- 一个字节数组,表示支持的图像格式中的图像数据。 - 返回:
- 一个图像。
- 自版本:
- 1.1
-
createImage
创建一个解码存储在指定字节数组中的图像,并指定偏移量和长度。数据必须是某种图像格式,如GIF或JPEG,该格式由此工具包支持。- 参数:
-
imagedata
- 一个字节数组,表示支持的图像格式中的图像数据。 -
imageoffset
- 数组中数据起始位置的偏移量。 -
imagelength
- 数组中数据的长度。 - 返回:
- 一个图像。
- 自版本:
- 1.1
-
getPrintJob
获取一个PrintJob
对象,该对象是在工具包平台上启动打印操作的结果。此方法的每个实际实现应首先检查是否安装了安全管理器。如果有安全管理器,则该方法应调用安全管理器的
checkPrintJobAccess
方法,以确保允许启动打印操作。如果使用了checkPrintJobAccess
的默认实现(即未覆盖该方法),则会导致调用安全管理器的checkPermission
方法,该方法具有RuntimePermission("queuePrintJob")
权限。- 参数:
-
frame
- 打印对话框的父级。不得为null。 -
jobtitle
- PrintJob的标题。空标题等效于""。 -
props
- 包含零个或多个属性的Properties对象。属性未标准化,且在各种实现之间不一致。因此,需要对作业和页面控制的PrintJob使用此函数的版本,该版本接受JobAttributes和PageAttributes对象。此对象可能会在退出时更新以反映用户的作业选择。可能为null。 - 返回:
-
一个
PrintJob
对象,如果用户取消了打印作业,则返回null
。 - 抛出:
-
NullPointerException
- 如果frame为null -
SecurityException
- 如果此线程不允许启动打印作业请求 - 自版本:
- 1.1
- 参见:
-
getPrintJob
public PrintJob getPrintJob(Frame frame, String jobtitle, JobAttributes jobAttributes, PageAttributes pageAttributes) 获取一个PrintJob
对象,该对象是在工具包平台上启动打印操作的结果。此方法的每个实际实现应首先检查是否安装了安全管理器。如果有安全管理器,则该方法应调用安全管理器的
checkPrintJobAccess
方法,以确保允许启动打印操作。如果使用了checkPrintJobAccess
的默认实现(即未覆盖该方法),则会导致调用安全管理器的checkPermission
方法,该方法具有RuntimePermission("queuePrintJob")
权限。- 参数:
-
frame
- 打印对话框的父级。不得为null。 -
jobtitle
- PrintJob的标题。空标题等效于""。 -
jobAttributes
- 一组将控制PrintJob的作业属性。属性将根据作业属性文档中概述的用户选择进行更新。可能为null。 -
pageAttributes
- 一组将控制PrintJob的页面属性。属性将应用于作业中的每一页。属性将根据页面属性文档中概述的用户选择进行更新。可能为null。 - 返回:
-
一个
PrintJob
对象,如果用户取消了打印作业,则返回null
。 - 抛出:
-
NullPointerException
- 如果frame为null -
IllegalArgumentException
- 如果pageAttributes指定了不同的横向和纵向分辨率。如果此线程具有访问文件系统的权限,并且jobAttributes指定打印到文件,指定的目标文件存在但是一个目录而不是一个常规文件,不存在但无法创建,或由于任何其他原因无法打开。但是,在打印到文件的情况下,如果还要求显示对话框,则用户将有机会选择文件并继续打印。对话框将确保所选的输出文件在从此方法返回之前有效。 -
SecurityException
- 如果此线程不允许启动打印作业请求,或者如果jobAttributes指定打印到文件,并且此线程不允许访问文件系统 - 自版本:
- 1.3
- 参见:
-
beep
public abstract void beep()根据本地系统设置和硬件功能发出音频蜂鸣。- 自版本:
- 1.1
-
getSystemClipboard
获取与本地平台提供的剪贴板设施进行交互的系统剪贴板的单例实例。此剪贴板使Java程序与使用本机剪贴板设施的本机应用程序之间进行数据传输。除了系统剪贴板的
getTransferData()
方法返回的任何默认格式文本外,还可以使用以下格式:- DataFlavor.stringFlavor
- DataFlavor.plainTextFlavor(已弃用)
java.awt.datatransfer.StringSelection
一样,如果请求的格式为DataFlavor.plainTextFlavor
或等效格式,则将返回一个Reader。注意:对于DataFlavor.plainTextFlavor
和等效DataFlavors,系统剪贴板的getTransferData()
方法的行为与DataFlavor.plainTextFlavor
的定义不一致。因此,对于DataFlavor.plainTextFlavor
和等效格式的支持已弃用。此方法的每个实际实现应首先检查是否安装了安全管理器。如果有安全管理器,则该方法应调用安全管理器的
checkPermission
方法来检查AWTPermission("accessClipboard")
。- 返回:
- 系统剪贴板
- 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true - 自版本:
- 1.1
- 参见:
-
getSystemSelection
获取系统选择的单例实例作为Clipboard
对象。这允许应用程序读取和修改当前的系统范围选择。应用程序负责在用户使用鼠标或键盘选择文本时更新系统选择。通常,这是通过在支持文本选择的所有
Component
上安装FocusListener
来实现的,并在传递给该Component
的FOCUS_GAINED
和FOCUS_LOST
事件之间,在Component
内部更改选择时更新系统选择Clipboard
。正确更新系统选择确保Java应用程序与同时在系统上运行的本机应用程序和其他Java应用程序正确交互。请注意,java.awt.TextComponent
和javax.swing.text.JTextComponent
已经遵守了这一政策。在使用这些类及其子类时,开发人员无需编写任何额外的代码。某些平台不支持系统选择
Clipboard
。在这些平台上,此方法将返回null
。在这种情况下,应用程序无需按照上述描述更新系统选择Clipboard
。此方法的每个实际实现应首先检查是否安装了安全管理器。如果有安全管理器,则该方法应调用安全管理器的
checkPermission
方法来检查AWTPermission("accessClipboard")
。- 返回:
-
系统选择作为
Clipboard
,如果本机平台不支持系统选择Clipboard
,则返回null
- 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()
返回true - 自从:
- 1.4
- 参见:
-
getMenuShortcutKeyMask
Deprecated.It is recommended that extended modifier keys andgetMenuShortcutKeyMaskEx()
be used instead确定哪个修饰键是菜单快捷方式的适当加速键。菜单快捷方式,体现在
MenuShortcut
类中,由MenuBar
类处理。默认情况下,此方法返回
Event.CTRL_MASK
。如果Control键不是加速键的正确键,则Toolkit实现应覆盖此方法。- 返回:
-
在此工具包上用于菜单快捷方式的
Event
类上的修饰符掩码。 - 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()
返回true - 自从:
- 1.1
- 参见:
-
getMenuShortcutKeyMaskEx
确定哪个扩展修饰键是菜单快捷方式的适当加速键。菜单快捷方式,体现在
MenuShortcut
类中,由MenuBar
类处理。默认情况下,此方法返回
InputEvent.CTRL_DOWN_MASK
。如果Control键不是加速键的正确键,则Toolkit实现应覆盖此方法。- 返回:
-
在此工具包上用于菜单快捷方式的
InputEvent
类上的修饰符掩码 - 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()
返回true - 自从:
- 10
- 参见:
-
getLockingKeyState
- 参数:
-
keyCode
- 键代码 - 返回:
-
如果给定键当前处于“打开”状态,则返回
true
;否则返回false
- 抛出:
-
IllegalArgumentException
- 如果keyCode
不是有效的键代码 -
UnsupportedOperationException
- 如果主机系统不允许以编程方式获取此键的状态,或者键盘没有此键 -
HeadlessException
- 如果GraphicsEnvironment.isHeadless()
返回true - 自从:
- 1.3
- 参见:
-
setLockingKeyState
设置键盘上给定锁定键的状态。有效的键代码是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
为本机对等体提供查询本机容器的能力,给定本机组件(例如,直接父级可能是轻量级)。- 参数:
-
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
- 组件希望使用的首选光标高度。 - 返回:
- 最接近的支持的光标大小,如果Toolkit实现不支持自定义光标,则返回0,0的尺寸。
- 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true - 自版本:
- 1.2
- 参见:
-
getMaximumCursorColors
返回Toolkit支持的自定义光标调色板中的最大颜色数。注意:如果使用的图像的调色板中的颜色数超过支持的最大值,则Toolkit实现将尝试将调色板压缩到最大值。由于转换低分辨率图像很困难,因此无法保证具有比系统支持的颜色更多的光标图像的质量。因此建议调用此方法并使用适当的图像,以便不进行图像转换。
- 返回:
- 最大颜色数,如果此Toolkit实现不支持自定义光标,则返回零。
- 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true - 自版本:
- 1.2
- 参见:
-
isFrameStateSupported
返回Toolkit是否支持Frame
的此状态。此方法告知是否支持例如最大化或最小化的UI概念。对于"复合"状态(例如Frame.ICONIFIED|Frame.MAXIMIZED_VERT
),它将始终返回false。换句话说,规则是只有带有单个框架状态常量作为参数的查询才是有意义的。请注意,支持给定概念是一个依赖于平台的特性。由于本机限制,Toolkit对象可能会报告特定状态为支持的,但同时Toolkit对象将无法将该状态应用于给定的框架。这种情况有以下两个后果:
- 仅当此方法的返回值为
false
时,才实际指示给定状态不受支持。如果方法返回true
,则给定状态仍可能不受支持和/或对特定框架不可用。 - 开发人员应考虑检查通过
WindowEvent.getNewState()
方法接收到的WindowEvent
的值,而不是假设给定给setExtendedState()
方法的状态一定会被应用。有关更多信息,请参阅Frame.setExtendedState(int)
方法的文档。
- 参数:
-
state
- 命名的框架状态常量之一。 - 返回:
-
如果此Toolkit实现支持此框架状态,则返回
true
,否则返回false
。 - 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()
返回true
。 - 自版本:
- 1.4
- 参见:
- 仅当此方法的返回值为
-
getProperty
获取具有指定键和默认值的属性。如果未找到属性,则此方法返回defaultValue。- 参数:
-
key
- 键 -
defaultValue
- 默认值 - 返回:
- 属性的值,如果未找到属性,则返回默认值
-
getSystemEventQueue
获取应用程序或小程序的EventQueue实例。根据Toolkit实现的不同,可能会为不同的小程序返回不同的EventQueues。因此,小程序不应假设此方法返回的EventQueue实例将被其他小程序或系统共享。如果存在安全管理器,则将调用其
checkPermission
方法来检查AWTPermission("accessEventQueue")
。- 返回:
-
EventQueue
对象 - 抛出:
-
SecurityException
- 如果设置了安全管理器并且拒绝访问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
获取指定桌面属性的值。桌面属性是Toolkit全局性质的具有唯一名称的资源值。通常它也是对底层平台相关桌面设置的抽象表示。有关AWT支持的桌面属性的更多信息,请参见AWT Desktop Properties。- 参数:
-
propertyName
- 属性名称 - 返回:
- 指定桌面属性的值
-
setDesktopProperty
将指定的桌面属性设置为指定的值,并触发属性更改事件以通知任何侦听器该值已更改。- 参数:
-
name
- 属性名称 -
newValue
- 新的属性值
-
lazilyLoadDesktopProperty
有机会延迟评估桌面属性值。- 参数:
-
name
- 名称 - 返回:
- 桌面属性或null
-
initializeDesktopProperties
protected void initializeDesktopProperties()initializeDesktopProperties -
addPropertyChangeListener
为指定的桌面属性添加指定的属性更改侦听器。当添加PropertyChangeListenerProxy
对象时,其属性名称将被忽略,并添加包装的侦听器。如果name
为null
或pcl
为null
,则不会抛出异常,也不执行任何操作。- 参数:
-
name
- 要监听的属性的名称 -
pcl
- 属性更改侦听器 - 自版本:
- 1.2
- 参见:
-
removePropertyChangeListener
删除指定的桌面属性的指定属性更改侦听器。当删除PropertyChangeListenerProxy
对象时,其属性名称将被忽略,并删除包装的侦听器。如果name
为null
或pcl
为null
,则不会抛出异常,也不执行任何操作。- 参数:
-
name
- 要移除的属性的名称 -
pcl
- 属性更改侦听器 - 自版本:
- 1.2
- 参见:
-
getPropertyChangeListeners
返回在此Toolkit上注册的所有属性更改侦听器的数组。返回的数组包含将侦听器与桌面属性的名称关联的PropertyChangeListenerProxy
对象。- 返回:
-
所有此Toolkit的
PropertyChangeListener
对象包装在java.beans.PropertyChangeListenerProxy
对象中,如果未添加任何侦听器,则返回空数组 - 自版本:
- 1.4
- 参见:
-
getPropertyChangeListeners
返回与指定桌面属性名称关联的所有属性更改侦听器的数组。- 参数:
-
propertyName
- 属性名称 - 返回:
-
返回指定桌面属性名称相关联的所有
PropertyChangeListener
对象,如果没有添加此类监听器则返回空数组 - 自版本:
- 1.4
- 参见:
-
isAlwaysOnTopSupported
public boolean isAlwaysOnTopSupported()返回此工具包是否支持始终置顶模式。要检测特定窗口是否支持始终置顶模式,请使用Window.isAlwaysOnTopSupported()
。- 返回:
-
true
,如果当前工具包支持始终置顶模式,否则返回false
- 自版本:
- 1.6
- 参见:
-
isModalityTypeSupported
返回此工具包是否支持给定的模态类型。如果创建具有不受支持的模态类型的对话框,则使用Dialog.ModalityType.MODELESS
。- 参数:
-
modalityType
- 要检查此工具包是否支持的模态类型 - 返回:
-
true
,如果当前工具包支持给定的模态类型,否则返回false
- 自版本:
- 1.6
- 参见:
-
isModalExclusionTypeSupported
返回此工具包是否支持给定的模态排除类型。如果在窗口上设置了不受支持的模态排除类型属性,则使用Dialog.ModalExclusionType.NO_EXCLUDE
。- 参数:
-
modalExclusionType
- 要检查此工具包是否支持的模态排除类型 - 返回:
-
true
,如果当前工具包支持给定的模态排除类型,否则返回false
- 自版本:
- 1.6
- 参见:
-
addAWTEventListener
添加一个AWTEventListener以接收系统范围内分派的符合给定eventMask
的所有AWTEvents。首先,如果存在安全管理器,则将调用其
checkPermission
方法,传入AWTPermission("listenToAllAWTEvents")
权限。这可能导致SecurityException。eventMask
是要接收的事件类型的位掩码。它是通过对AWTEvent
中定义的事件掩码进行按位OR运算构造的。注意:不建议正常应用程序使用事件监听器,而是仅用于支持特殊用途的设施,包括支持辅助功能、事件记录/回放和诊断跟踪。如果监听器为null,则不会抛出异常,也不执行任何操作。
- 参数:
-
listener
- 事件监听器 -
eventMask
- 要接收的事件类型的位掩码 - 抛出:
-
SecurityException
- 如果存在安全管理器且其checkPermission
方法不允许该操作 - 自版本:
- 1.2
- 参见:
-
removeAWTEventListener
从接收分派的AWTEvents中移除一个AWTEventListener。首先,如果存在安全管理器,则将调用其
checkPermission
方法,传入AWTPermission("listenToAllAWTEvents")
权限。这可能导致SecurityException。注意:不建议正常应用程序使用事件监听器,而是仅用于支持特殊用途的设施,包括支持辅助功能、事件记录/回放和诊断跟踪。如果监听器为null,则不会抛出异常,也不执行任何操作。
- 参数:
-
listener
- 事件监听器 - 抛出:
-
SecurityException
- 如果存在安全管理器且其checkPermission
方法不允许该操作 - 自版本:
- 1.2
- 参见:
-
getAWTEventListeners
返回在此工具包上注册的所有AWTEventListener
的数组。如果存在安全管理器,则将调用其checkPermission
方法,传入AWTPermission("listenToAllAWTEvents")
权限。这可能导致SecurityException。监听器可以在AWTEventListenerProxy
对象中返回,该对象还包含给定监听器的事件掩码。请注意,多次添加的监听器对象在返回的数组中只出现一次。- 返回:
-
所有
AWTEventListener
或如果当前没有注册监听器则返回空数组 - 抛出:
-
SecurityException
- 如果存在安全管理器且其checkPermission
方法不允许该操作 - 自版本:
- 1.4
- 参见:
-
getAWTEventListeners
返回在此工具包上注册的所有AWTEventListener
的数组,这些监听器侦听eventMask
参数中指定的所有事件类型。如果存在安全管理器,则将调用其checkPermission
方法,传入AWTPermission("listenToAllAWTEvents")
权限。这可能导致SecurityException。监听器可以在AWTEventListenerProxy
对象中返回,该对象还包含给定监听器的事件掩码。请注意,多次添加的监听器对象在返回的数组中只出现一次。- 参数:
-
eventMask
- 要侦听的事件类型的位掩码 - 返回:
-
在此工具包上注册的所有
AWTEventListener
数组,用于指定事件类型,如果当前没有注册此类监听器则返回空数组 - 抛出:
-
SecurityException
- 如果存在安全管理器且其checkPermission
方法不允许该操作 - 自版本:
- 1.4
- 参见:
-
mapInputMethodHighlight
public abstract Map<TextAttribute,?> mapInputMethodHighlight(InputMethodHighlight highlight) throws HeadlessException 返回给定输入法突出显示的抽象级别描述的视觉属性映射,如果找不到映射,则返回null。忽略输入法突出显示的样式字段。返回的映射是不可修改的。- 参数:
-
highlight
- 输入法突出显示 - 返回:
-
样式属性映射,或
null
- 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless
返回true - 自版本:
- 1.3
- 参见:
-
areExtraMouseButtonsEnabled
报告是否允许处理和发布来自额外鼠标按钮的事件到EventQueue
中。
要更改返回值,需要在Toolkit
类初始化之前设置sun.awt.enableExtraMouseButtons
属性。可以通过以下命令在应用程序启动时进行此设置:java -Dsun.awt.enableExtraMouseButtons=false Application
或者,可以通过以下代码在应用程序中进行设置:System.setProperty("sun.awt.enableExtraMouseButtons", "true");
在Toolkit
类初始化之前未设置此属性,该属性将被初始化为true
。在Toolkit
类初始化后更改此值将不会产生任何效果。- 返回:
-
如果允许处理和发布来自额外鼠标按钮的事件,则返回
true
;否则返回false
- 抛出:
-
HeadlessException
- 如果GraphicsEnvironment.isHeadless()
返回true - 自版本:
- 1.7
- 参见:
-
GraphicsEnvironment.getAvailableFontFamilyNames()