public abstract class Toolkit extends Object
Toolkit
类用于将各种组件绑定到特定的本地工具包实现。
如果没有明确指定相反的情况,许多GUI事件可能异步传递给用户。 以及许多GUI操作可以异步执行。 这个事实意味着如果组件的状态被设置,然后立即查询状态,则返回的值可能还未反映所请求的更改。 此行为包括但不限于:
ScrollPane.setScrollPosition
然后getScrollPosition
可能返回不正确的值。 setVisible(true)
上Window
, Frame
或Dialog
可能异步发生。 setSize
, setBounds
或setLocation
上的Window
, Frame
或Dialog
被转发到底层窗口管理系统,并且可以被忽略或修改。 见Window
以获取更多信息。 大多数应用程序不应该直接调用此类中的任何方法。 通过定义的方法Toolkit
是“胶水”的加入在独立于平台的类java.awt
包与他们在同行java.awt.peer
。 Toolkit
定义的一些方法直接查询本地操作系统。
Modifier and Type | Field and Description |
---|---|
protected Map<String,Object> |
desktopProperties |
protected PropertyChangeSupport |
desktopPropsSupport |
Constructor and Description |
---|
Toolkit() |
Modifier and Type | Method and Description |
---|---|
void |
addAWTEventListener(AWTEventListener listener, long eventMask)
添加AWTEventListener以接收符合给定
eventMask 系统范围内发送的所有
eventMask 。
|
void |
addPropertyChangeListener(String name, PropertyChangeListener pcl)
为指定的桌面属性添加指定的属性更改侦听器。
|
boolean |
areExtraMouseButtonsEnabled()
报告是否允许将额外的鼠标按钮的事件处理并发布到
EventQueue 。
|
abstract void |
beep()
根据本地系统设置和硬件功能发出音频蜂鸣声。
|
abstract int |
checkImage(Image image, int width, int height, ImageObserver observer)
表示准备显示的指定图像的构造状态。
|
protected abstract java.awt.peer.ButtonPeer |
createButton(Button target)
创建此工具包的实施
Button 使用指定同级件接口。
|
protected abstract java.awt.peer.CanvasPeer |
createCanvas(Canvas target)
创建此工具包的实施
Canvas 使用指定同级件接口。
|
protected abstract java.awt.peer.CheckboxPeer |
createCheckbox(Checkbox target)
创建此工具包的实施
Checkbox 使用指定同级件接口。
|
protected abstract java.awt.peer.CheckboxMenuItemPeer |
createCheckboxMenuItem(CheckboxMenuItem target)
创建此工具包的实施
CheckboxMenuItem 使用指定同级件接口。
|
protected abstract java.awt.peer.ChoicePeer |
createChoice(Choice target)
创建此工具包的实施
Choice 使用指定同级件接口。
|
protected java.awt.peer.LightweightPeer |
createComponent(Component target)
创建组件或容器的对等体。
|
Cursor |
createCustomCursor(Image cursor, Point hotSpot, String name)
创建一个新的自定义光标对象。
|
protected abstract java.awt.peer.DesktopPeer |
createDesktopPeer(Desktop target)
创建此工具包的实施
Desktop 使用指定同级件接口。
|
protected abstract java.awt.peer.DialogPeer |
createDialog(Dialog target)
创建此工具包的实施
Dialog 使用指定同级件接口。
|
<T extends DragGestureRecognizer> |
createDragGestureRecognizer(类<T> abstractRecognizerClass, DragSource ds, Component c, int srcActions, DragGestureListener dgl)
创建一个具体的,依赖平台的抽象DragGestureRecognizer类的子类,并将其与指定的DragSource,Component和DragGestureListener相关联。
|
abstract java.awt.dnd.peer.DragSourceContextPeer |
createDragSourceContextPeer(DragGestureEvent dge)
创建一个DragSourceContext的对等体。
|
protected abstract java.awt.peer.FileDialogPeer |
createFileDialog(FileDialog target)
创建此工具包的实施
FileDialog 使用指定同级件接口。
|
protected abstract java.awt.peer.FramePeer |
createFrame(Frame target)
创建此工具包的实施
Frame 使用指定同级件接口。
|
Image |
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获取像素数据的图像。
|
protected abstract java.awt.peer.LabelPeer |
createLabel(Label target)
创建此工具包的实施
Label 使用指定同级件接口。
|
protected abstract java.awt.peer.ListPeer |
createList(List target)
创建此工具包的实施
List 使用指定同级件接口。
|
protected abstract java.awt.peer.MenuPeer |
createMenu(Menu target)
创建此工具包的实施
Menu 使用指定同级件接口。
|
protected abstract java.awt.peer.MenuBarPeer |
createMenuBar(MenuBar target)
创建此工具包的实施
MenuBar 使用指定同级件接口。
|
protected abstract java.awt.peer.MenuItemPeer |
createMenuItem(MenuItem target)
创建此工具包的实施
MenuItem 使用指定同级件接口。
|
protected abstract java.awt.peer.PanelPeer |
createPanel(Panel target)
创建此工具包的实施
Panel 使用指定同级件接口。
|
protected abstract java.awt.peer.PopupMenuPeer |
createPopupMenu(PopupMenu target)
创建此工具包的实施
PopupMenu 使用指定同级件接口。
|
protected abstract java.awt.peer.ScrollbarPeer |
createScrollbar(Scrollbar target)
创建此工具包的实施
Scrollbar 使用指定同级件接口。
|
protected abstract java.awt.peer.ScrollPanePeer |
createScrollPane(ScrollPane target)
创建此工具包的实施
ScrollPane 使用指定同级件接口。
|
protected abstract java.awt.peer.TextAreaPeer |
createTextArea(TextArea target)
创建此工具包的实施
TextArea 使用指定同级件接口。
|
protected abstract java.awt.peer.TextFieldPeer |
createTextField(TextField target)
创建此工具包的实施
TextField 使用指定同级件接口。
|
protected abstract java.awt.peer.WindowPeer |
createWindow(Window target)
创建此工具包的实施
Window 使用指定同级件接口。
|
AWTEventListener[] |
getAWTEventListeners()
返回在该工具包上
AWTEventListener 的所有
AWTEventListener 的数组。
|
AWTEventListener[] |
getAWTEventListeners(long eventMask)
返回在此工具包上
AWTEventListener 的所有
AWTEventListener 的数组,该数组侦听
eventMask 参数中指定的所有事件类型。
|
Dimension |
getBestCursorSize(int preferredWidth, int preferredHeight)
返回最接近所需大小的支持的光标维度。
|
abstract ColorModel |
getColorModel()
确定该工具包屏幕的颜色模型。
|
static Toolkit |
getDefaultToolkit()
获取默认工具包。
|
Object |
getDesktopProperty(String propertyName)
获取指定的桌面属性的值。
|
abstract String[] |
getFontList()
|
abstract FontMetrics |
getFontMetrics(Font font)
已弃用
从JDK 1.2版开始,替换为
Font 方法getLineMetrics 。
|
protected abstract java.awt.peer.FontPeer |
getFontPeer(String name, int style)
已弃用
请参阅java.awt.GraphicsEnvironment#getAllFonts
|
abstract Image |
getImage(String filename)
返回从指定文件获取像素数据的图像,其格式可以是GIF,JPEG或PNG。
|
abstract Image |
getImage(URL url)
返回从指定的URL获取像素数据的图像。
|
boolean |
getLockingKeyState(int keyCode)
返回键盘上给定的锁定键是否处于“开启”状态。
|
int |
getMaximumCursorColors()
返回Toolkit在自定义光标调色板中支持的最大颜色数。
|
int |
getMenuShortcutKeyMask()
确定哪个修饰键是菜单快捷键的适当加速键。
|
protected java.awt.peer.MouseInfoPeer |
getMouseInfoPeer()
此工具包的实施辅助类的
MouseInfo 操作。
|
protected static Container |
getNativeContainer(Component c)
给本地对等体提供给本地组件查询本机容器的能力(例如,直接父级可能是轻量级的)。
|
PrintJob |
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)
获取具有指定键和默认值的属性。
|
PropertyChangeListener[] |
getPropertyChangeListeners()
返回在此工具包上注册的所有属性更改侦听器的数组。
|
PropertyChangeListener[] |
getPropertyChangeListeners(String propertyName)
返回与指定的桌面属性名称相关联的所有属性更改侦听器的数组。
|
Insets |
getScreenInsets(GraphicsConfiguration gc)
获取屏幕的插图。
|
abstract int |
getScreenResolution()
以英寸为单位返回屏幕分辨率。
|
abstract Dimension |
getScreenSize()
获取屏幕的大小。
|
abstract Clipboard |
getSystemClipboard()
获取与本地平台提供的剪贴板工具接口的系统剪贴板的单例实例。
|
EventQueue |
getSystemEventQueue()
获取应用程序或小程序的EventQueue实例。
|
protected abstract EventQueue |
getSystemEventQueueImpl()
获取应用程序或小程序的
EventQueue 实例,而无需检查访问。
|
Clipboard |
getSystemSelection()
获取系统选择的单例实例为
Clipboard 对象。
|
protected void |
initializeDesktopProperties()
initializeDesktopProperties
|
boolean |
isAlwaysOnTopSupported()
返回此工具包是否支持始终在线模式。
|
boolean |
isDynamicLayoutActive()
返回容器在resize上的动态布局当前是否处于活动状态(均设置在程序(
isDynamicLayoutSet() )中,并由底层操作系统和/或窗口管理器支持)。
|
protected boolean |
isDynamicLayoutSet()
返回容器的布局在调整大小期间是否动态进行验证,或者在调整大小之后静态地验证。
|
boolean |
isFrameStateSupported(int state)
返回Toolkit是否支持
Frame 的这种状态。
|
abstract boolean |
isModalExclusionTypeSupported(Dialog.ModalExclusionType modalExclusionType)
返回此工具包是否支持给定的模式排除类型。
|
abstract boolean |
isModalityTypeSupported(Dialog.ModalityType modalityType)
返回此工具包是否支持给定的模态类型。
|
protected Object |
lazilyLoadDesktopProperty(String name)
懒惰评估桌面属性值的机会。
|
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)
从接收发送的AWTEvent中删除AWTEventListener。
|
void |
removePropertyChangeListener(String name, PropertyChangeListener pcl)
为指定的桌面属性移除指定的属性更改侦听器。
|
protected void |
setDesktopProperty(String name, Object newValue)
将指定的桌面属性设置为指定的值,并触发属性更改事件以通知任何侦听器该值已更改。
|
void |
setDynamicLayout(boolean dynamic)
控制容器的布局在调整大小期间是否动态地进行验证,或者在调整大小之后静态地进行。
|
void |
setLockingKeyState(int keyCode, boolean on)
设置键盘上给定锁定键的状态。
|
abstract void |
sync()
同步该工具包的图形状态。
|
protected final PropertyChangeSupport desktopPropsSupport
protected abstract java.awt.peer.DesktopPeer createDesktopPeer(Desktop target) throws HeadlessException
Desktop
使用指定同级件接口。
target
- 要实现的桌面
Desktop
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
, Desktop
, DesktopPeer
protected abstract java.awt.peer.ButtonPeer createButton(Button target) throws HeadlessException
Button
使用指定同级件接口。
target
- 要实现的按钮。
Button
。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
, Button
, ButtonPeer
protected abstract java.awt.peer.TextFieldPeer createTextField(TextField target) throws HeadlessException
TextField
使用指定同级件接口。
target
- 要实现的文本字段。
TextField
。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
, TextField
, TextFieldPeer
protected abstract java.awt.peer.LabelPeer createLabel(Label target) throws HeadlessException
Label
使用指定同级件接口。
target
- 要实施的标签。
Label
。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
, Label
, LabelPeer
protected abstract java.awt.peer.ListPeer createList(List target) throws HeadlessException
List
使用指定同级件接口。
target
- 要实施的清单。
List
。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
, List
, ListPeer
protected abstract java.awt.peer.CheckboxPeer createCheckbox(Checkbox target) throws HeadlessException
Checkbox
使用指定同级件接口。
target
- 要实施的复选框。
Checkbox
。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
, Checkbox
, CheckboxPeer
protected abstract java.awt.peer.ScrollbarPeer createScrollbar(Scrollbar target) throws HeadlessException
Scrollbar
使用指定同级件接口。
target
- 要实现的滚动条。
Scrollbar
。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
, Scrollbar
, ScrollbarPeer
protected abstract java.awt.peer.ScrollPanePeer createScrollPane(ScrollPane target) throws HeadlessException
ScrollPane
使用指定同级件接口。
target
- 要实现的滚动窗格。
ScrollPane
。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
, ScrollPane
, ScrollPanePeer
protected abstract java.awt.peer.TextAreaPeer createTextArea(TextArea target) throws HeadlessException
TextArea
使用指定同级件接口。
target
- 要实现的文本区域。
TextArea
。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
, TextArea
, TextAreaPeer
protected abstract java.awt.peer.ChoicePeer createChoice(Choice target) throws HeadlessException
Choice
使用指定同级件接口。
target
- 要实施的选择。
Choice
。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
, Choice
, ChoicePeer
protected abstract java.awt.peer.FramePeer createFrame(Frame target) throws HeadlessException
Frame
使用指定同级件接口。
target
- 要实现的框架。
Frame
。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
, Frame
, FramePeer
protected abstract java.awt.peer.CanvasPeer createCanvas(Canvas target)
Canvas
使用指定同级件接口。
target
- 要实现的画布。
Canvas
。
Canvas
, CanvasPeer
protected abstract java.awt.peer.PanelPeer createPanel(Panel target)
Panel
使用指定同级件接口。
target
- 要实施的小组。
Panel
。
Panel
, PanelPeer
protected abstract java.awt.peer.WindowPeer createWindow(Window target) throws HeadlessException
Window
使用指定同级件接口。
target
- 要实现的窗口。
Window
。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
, Window
, WindowPeer
protected abstract java.awt.peer.DialogPeer createDialog(Dialog target) throws HeadlessException
Dialog
使用指定同级件接口。
target
- 要实现的对话框。
Dialog
。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
, Dialog
, DialogPeer
protected abstract java.awt.peer.MenuBarPeer createMenuBar(MenuBar target) throws HeadlessException
MenuBar
使用指定同级件接口。
target
- 要实现的菜单栏。
MenuBar
。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
, MenuBar
, MenuBarPeer
protected abstract java.awt.peer.MenuPeer createMenu(Menu target) throws HeadlessException
Menu
使用指定同级件接口。
target
- 要实现的菜单。
Menu
。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
, Menu
, MenuPeer
protected abstract java.awt.peer.PopupMenuPeer createPopupMenu(PopupMenu target) throws HeadlessException
PopupMenu
使用指定同级件接口。
target
- 要实现的弹出菜单。
PopupMenu
。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
, PopupMenu
, PopupMenuPeer
protected abstract java.awt.peer.MenuItemPeer createMenuItem(MenuItem target) throws HeadlessException
MenuItem
使用指定同级件接口。
target
- 要实现的菜单项。
MenuItem
。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
, MenuItem
, MenuItemPeer
protected abstract java.awt.peer.FileDialogPeer createFileDialog(FileDialog target) throws HeadlessException
FileDialog
使用指定同级件接口。
target
- 要实现的文件对话框。
FileDialog
。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
, FileDialog
, FileDialogPeer
protected abstract java.awt.peer.CheckboxMenuItemPeer createCheckboxMenuItem(CheckboxMenuItem target) throws HeadlessException
CheckboxMenuItem
使用指定同级件接口。
target
- 要实现的复选框菜单项。
CheckboxMenuItem
。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
, CheckboxMenuItem
, CheckboxMenuItemPeer
protected java.awt.peer.MouseInfoPeer getMouseInfoPeer()
MouseInfo
操作。
MouseInfo
UnsupportedOperationException
- 如果未执行此操作
MouseInfoPeer
, MouseInfo
protected java.awt.peer.LightweightPeer createComponent(Component target)
target
- 要创建的组件。
@Deprecated protected abstract java.awt.peer.FontPeer getFontPeer(String name, int style)
Font
使用指定同级件接口。
name
- 要实现的字体
style
-字体的样式,如
PLAIN
,
BOLD
,
ITALIC
,或它们的组合
Font
Font
, FontPeer
, GraphicsEnvironment.getAllFonts()
protected void loadSystemColors(int[] systemColors) throws HeadlessException
systemColors
- 整数数组。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
public void setDynamicLayout(boolean dynamic) throws HeadlessException
isDynamicLayoutActive()
来检测此程序是否启用此功能,并由此操作系统和/或窗口管理器支持。
请注意,此功能不支持在所有平台上,相反,在某些平台上无法关闭此功能。
在这些平台上,不支持(或始终支持)调整大小时的动态布局,设置此属性不起作用。
请注意,在某些平台上,该功能可以作为操作系统或窗口管理器的属性进行设置或取消设置。
在这样的平台上,动态resize属性必须设置在操作系统或窗口管理器级别,此方法才能生效。
此方法不会更改底层操作系统或窗口管理器的支持或设置。
可以使用getDesktopProperty(“awt.dynamicLayoutSupported”)方法查询OS / WM支持。
dynamic
- 如果为true,则容器应在容器调整大小时重新布局其组件。
如果为false,布局将在调整大小完成后验证。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
isDynamicLayoutSet()
,
isDynamicLayoutActive()
,
getDesktopProperty(String propertyName)
,
GraphicsEnvironment.isHeadless()
protected boolean isDynamicLayoutSet() throws HeadlessException
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
setDynamicLayout(boolean dynamic)
,
isDynamicLayoutActive()
,
getDesktopProperty(String propertyName)
,
GraphicsEnvironment.isHeadless()
public boolean isDynamicLayoutActive() throws HeadlessException
isDynamicLayoutSet()
)中,并由底层操作系统和/或窗口管理器支持)。
如果动态布局当前处于非活动状态,则容器在调整大小时将重新布局其组件。
因此, Component.validate()
方法将仅调用一次调整大小。
如果动态布局当前处于活动状态,则Containers会在每个本机resize事件上重新布局其组件,并且每次将调用validate()
方法。
可以使用getDesktopProperty(“awt.dynamicLayoutSupported”)方法查询OS / WM支持。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()方法返回true
setDynamicLayout(boolean dynamic)
,
isDynamicLayoutSet()
,
getDesktopProperty(String propertyName)
,
GraphicsEnvironment.isHeadless()
public abstract Dimension getScreenSize() throws HeadlessException
GraphicsConfiguration
和GraphicsDevice
。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsConfiguration.getBounds()
,
GraphicsDevice.getDisplayMode()
,
GraphicsEnvironment.isHeadless()
public abstract int getScreenResolution() throws HeadlessException
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
public Insets getScreenInsets(GraphicsConfiguration gc) throws HeadlessException
gc
- a
GraphicsConfiguration
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
public abstract ColorModel getColorModel() throws HeadlessException
ColorModel
是一个抽象类,封装了在图像的像素值与其红,绿,蓝和阿尔法分量之间进行转换的能力。
这个工具包方法是由getColorModel
的Component
类调用的。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
, ColorModel
, Component.getColorModel()
@Deprecated public abstract String[] getFontList()
对于1.1,不推荐使用以下字体名称(替换名称如下):
ZapfDingbats fontname在1.1中也被弃用,但字符以Unicode开头,以0x2700为单位,从1.1开始,Java支持这些字符。
GraphicsEnvironment.getAvailableFontFamilyNames()
@Deprecated public abstract FontMetrics getFontMetrics(Font font)
Font
替换getLineMetrics
。
font
- 一种字体
LineMetrics
, Font.getLineMetrics(java.lang.String, java.awt.font.FontRenderContext)
, GraphicsEnvironment.getScreenDevices()
public abstract void sync()
此方法可确保显示器是最新的。 它对动画有用。
public static Toolkit getDefaultToolkit()
如果命名的系统属性"java.awt.headless"
设置为true
那么无头执行Toolkit
使用。
如果没有"java.awt.headless"
或设置为false
,并且有一个名为"awt.toolkit"
的系统属性,该属性将被视为Toolkit
子类的Toolkit
; 否则使用默认的平台特定实现Toolkit
。
还可以使用“accessibility.properties”文件中的一行,使用Sun参考实现中指定的属性“assistive_technologies”将额外的类加载到VM中。 形式是“assistive_technologies = ...”,其中“...”是用于加载的辅助技术类的逗号分隔列表。 每个类都按照给定的顺序加载,每个类的单个实例使用Class.forName(class).newInstance()创建。 这是在创建AWT工具包之后完成的。 所有错误都通过AWTError异常处理。
AWTError
- 如果找不到工具包,或者无法访问或实例化。
public abstract Image getImage(String filename)
由于促进共享Image
对象所需的Image
可能会继续保持不再在无限期内使用的图像,因此鼓励开发人员通过使用createImage
变体实现自己的缓存图像。 如果指定文件中包含的图像数据发生更改,则Image
方法返回的Image
对象可能仍包含从先前调用后从文件加载的过时信息。 以前加载的图像数据可以通过在返回的Image
上调用flush
方法手动Image
。
此方法首先检查是否安装了安全管理器。 如果是这样,该方法会使用指定的文件调用安全管理器的checkRead
方法,以确保允许对该映像的访问。
filename
- 包含识别文件格式的像素数据的文件的名称。
SecurityException
- 如果安全管理器存在,并且其checkRead方法不允许操作。
createImage(java.lang.String)
public abstract Image getImage(URL url)
由于促进共享Image
对象所需的Image
可能会继续保持不再使用无限期的图像,因此鼓励开发人员通过使用createImage
变体实现自己的缓存图像。 如果指定URL存储的图像数据发生变化,则Image
方法返回的Image
对象可能仍然包含在先前调用之后从URL中获取的过期信息。 以前加载的图像数据可以通过在返回的Image
上调用flush
方法手动Image
。
此方法首先检查是否安装了安全管理器。 如果是这样,该方法使用url.openConnection()。getPermission()权限调用安全管理器的checkPermission
方法,以确保允许对该映像的访问。 为了与1.2之前的安全管理员兼容,如果访问被拒绝使用FilePermission
或SocketPermission
,该方法会抛出SecurityException
如果相应的1.1型SecurityManager.checkXXX方法也拒绝许可。
url
- 用于获取像素数据的URL。
SecurityException
- 如果安全管理器存在,并且其checkPermission方法不允许操作。
createImage(java.net.URL)
public abstract Image createImage(String filename)
此方法首先检查是否安装了安全管理器。 如果是这样,该方法使用指定的文件调用安全管理器的checkRead
方法,以确保允许创建映像。
filename
- 包含识别文件格式的像素数据的文件的名称。
SecurityException
- 如果安全管理器存在,并且其checkRead方法不允许操作。
getImage(java.lang.String)
public abstract Image createImage(URL url)
此方法首先检查是否安装了安全管理器。 如果是这样,该方法使用url.openConnection()。getPermission()权限调用安全管理器的checkPermission
方法,以确保允许映像创建。 为了与1.2之前的安全管理员兼容,如果访问被拒绝使用FilePermission
或SocketPermission
,该方法将抛出SecurityException
如果相应的1.1型SecurityManager.checkXXX方法也拒绝权限。
url
- 用于获取像素数据的URL。
SecurityException
- 如果安全管理器存在,并且其checkPermission方法不允许操作。
getImage(java.net.URL)
public abstract boolean prepareImage(Image image, int width, int height, ImageObserver observer)
如果width和height参数的值均为-1
,则此方法将准备在默认屏幕上进行渲染的图像; 否则,该方法将在默认屏幕上以指定的宽度和高度准备渲染图像。
图像数据在另一个线程中异步下载,并且生成图像的适当缩放的屏幕表示。
该方法由组件prepareImage
方法调用。
有关此方法返回的标志的信息可以通过ImageObserver接口的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
public abstract int checkImage(Image image, int width, int height, ImageObserver observer)
如果width和height参数的值均为-1
,则此方法返回此工具包中指定图像的屏幕表示的构造状态。 否则,此方法返回指定宽度和高度的图像的缩放表示的构造状态。
此方法不会导致图像开始加载。 应用程序必须调用prepareImage
强制加载映像。
该方法由组件的checkImage
方法调用。
有关此方法返回的标志的信息可以通过ImageObserver接口的ImageObserver
找到。
image
- 正在检查状态的图像。
width
- 正在检查状态的缩放版本的宽度,或
-1
。
height
- 正在检查状态的缩放版本的高度,或
-1
。
observer
- 正在准备好要通知的
ImageObserver
对象。
ImageObserver
标志的按位包含
OR 。
prepareImage(java.awt.Image, int, int, java.awt.image.ImageObserver)
, Component.checkImage(java.awt.Image, java.awt.image.ImageObserver)
, Component.checkImage(java.awt.Image, int, int, java.awt.image.ImageObserver)
, ImageObserver
public abstract Image createImage(ImageProducer producer)
producer
- 要使用的图像制作者。
Image
, ImageProducer
, Component.createImage(java.awt.image.ImageProducer)
public Image createImage(byte[] imagedata)
数据必须是某种图像格式,如GIF或JPEG,这个工具包支持。
imagedata
- 表示支持的图像格式的图像数据的字节数组。
public abstract Image createImage(byte[] imagedata, int imageoffset, int imagelength)
imagedata
- 以支持的图像格式表示图像数据的字节数组。
imageoffset
- 数组中数据
imageoffset
的偏移量。
imagelength
- 数组中数据的长度。
public abstract PrintJob getPrintJob(Frame frame, String jobtitle, Properties props)
PrintJob
对象,这是在工具包的平台上启动打印操作的结果。
该方法的每个实际实现应首先检查是否安装了安全管理器。 如果有,该方法应该调用安全管理员的checkPrintJobAccess
方法,以确保启动打印操作是允许的。 如果默认实现checkPrintJobAccess
被使用(即,未重写此方法),那么这会导致对安全管理器的一个电话checkPermission
方法有RuntimePermission("queuePrintJob")
许可。
frame
- 打印对话框的父项。
可能不为空
jobtitle
- PrintJob的标题。
空标题等同于“”。
props
- 包含零个或多个属性的Properties对象。
属性不标准化,并且在实现中不一致。
因此,需要作业和页面控制的PrintJobs应该使用该函数的版本,该版本采用JobAttributes和PageAttributes对象。
此对象可能会被更新,以反映退出时用户的工作选择。
可能为null。
PrintJob
对象,如果用户取消了打印作业,
null
。
NullPointerException
- if frame为null
SecurityException
- 如果此线程不允许启动打印作业请求
GraphicsEnvironment.isHeadless()
, PrintJob
, RuntimePermission
public PrintJob getPrintJob(Frame frame, String jobtitle, JobAttributes jobAttributes, PageAttributes pageAttributes)
PrintJob
对象,这是在工具包的平台上启动打印操作的结果。
该方法的每个实际实现应首先检查是否安装了安全管理器。 如果有,该方法应该调用安全管理员的checkPrintJobAccess
方法,以确保启动打印操作是允许的。 如果默认实现checkPrintJobAccess
被使用(即,未重写此方法),那么这会导致对安全管理器的一个电话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指定打印到文件,并且此线程不允许访问文件系统
PrintJob
, GraphicsEnvironment.isHeadless()
, RuntimePermission
, JobAttributes
, PageAttributes
public abstract void beep()
public abstract Clipboard getSystemClipboard() throws HeadlessException
除了在flavormap.properties文件或AWT.DnD.flavorMapFileURL
Toolkit属性指定的其他文件中指定的任何和所有格式之外,系统剪贴板getTransferData()
方法返回的文本可用于以下风格:
java.awt.datatransfer.StringSelection
,如果要求的味道是DataFlavor.plainTextFlavor
,或相当的味道,则返回阅读器。
注意:系统剪贴板的getTransferData()
方法的DataFlavor.plainTextFlavor
和等效的DataFlavors与DataFlavor.plainTextFlavor的DataFlavor.plainTextFlavor
。
正因为如此,为支持DataFlavor.plainTextFlavor
,等效flavor, 已被弃用 。
该方法的每个实际实现应首先检查是否安装了安全管理器。 如果有,该方法应该调用安全管理员的checkPermission
方法来检查AWTPermission("accessClipboard")
。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
, Clipboard
, StringSelection
, DataFlavor.stringFlavor
, DataFlavor.plainTextFlavor
, Reader
, AWTPermission
public Clipboard getSystemSelection() throws HeadlessException
Clipboard
对象。
这允许应用程序读取和修改当前的全系统选择。
当用户使用鼠标或键盘选择文本时,应用程序负责更新系统选择。 通常,这是通过安装来实现FocusListener
上的所有Component
S的支持文本选择,和,之间FOCUS_GAINED
个FOCUS_LOST
传递到事件Component
,更新系统选择Clipboard
当内选择更改Component
。 正确更新系统选择可确保Java应用程序与本机应用程序和系统上同时运行的其他Java应用程序正确交互。 请注意, java.awt.TextComponent
和javax.swing.text.JTextComponent
已经遵守此政策。 当使用这些类及其子类时,开发人员不需要编写任何其他代码。
某些平台不支持系统选择Clipboard
。 在这些平台上,此方法将返回null
。 在这种情况下,如上所述,应用程序不能更新系统选择Clipboard
。
该方法的每个实际实现应首先检查是否安装了安全管理器。 如果有,该方法应该调用安全管理员的checkPermission
方法来检查AWTPermission("accessClipboard")
。
Clipboard
,或
null
如果本机平台不支持系统选择
Clipboard
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
Clipboard
, FocusListener
, FocusEvent.FOCUS_GAINED
, FocusEvent.FOCUS_LOST
, TextComponent
, JTextComponent
, AWTPermission
, GraphicsEnvironment.isHeadless()
public int getMenuShortcutKeyMask() throws HeadlessException
菜单快捷方式,其体现在MenuShortcut
类,由处理MenuBar
类。
默认情况下,此方法返回Event.CTRL_MASK
。 如果Control键不是加速器的正确键,Toolkit实现应该覆盖此方法。
Event
类上的修饰符掩码,用于此工具包上的菜单快捷方式。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
, MenuBar
, MenuShortcut
public boolean getLockingKeyState(int keyCode) throws UnsupportedOperationException
VK_CAPS_LOCK
, VK_NUM_LOCK
, VK_SCROLL_LOCK
和VK_KANA_LOCK
。
IllegalArgumentException
- 如果
keyCode
不是有效的密钥代码之一
UnsupportedOperationException
- 如果主机系统不允许以编程方式获取此密钥的状态,或者如果键盘没有此密钥
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
public void setLockingKeyState(int keyCode, boolean on) throws UnsupportedOperationException
VK_CAPS_LOCK
, VK_NUM_LOCK
, VK_SCROLL_LOCK
和VK_KANA_LOCK
。
根据平台,设置锁定键的状态可能涉及事件处理,因此可能无法通过getLockingKeyState立即观察到。
IllegalArgumentException
- 如果
keyCode
不是有效的密钥代码之一
UnsupportedOperationException
- 如果主机系统不允许以编程方式设置此键的状态,或者键盘没有此键
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
protected static Container getNativeContainer(Component c)
public Cursor createCustomCursor(Image cursor, Point hotSpot, String name) throws IndexOutOfBoundsException, HeadlessException
请注意,多帧图像无效,可能导致此方法挂起。
cursor
-
cursor
光标时显示的图像
hotSpot
- 大光标的热点的X和Y;
hotSpot值必须小于getBestCursorSize返回的getBestCursorSize
name
- Java辅助功能使用的游标的本地化描述
IndexOutOfBoundsException
- 如果hotSpot值超出了光标的边界
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
public Dimension getBestCursorSize(int preferredWidth, int preferredHeight) throws HeadlessException
注意:如果使用其尺寸与支持的尺寸不一致的图像(由此方法返回),则Toolkit实施将尝试将图像的大小调整为受支持的大小。 由于转换低分辨率图像是困难的,因此不能保证不是支持尺寸的光标图像的质量。 因此,建议调用此方法,并使用合适的图像,以便不进行图像转换。
preferredWidth
- 组件想要使用的首选光标宽度。
preferredHeight
- 组件想要使用的首选光标高度。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
public int getMaximumCursorColors() throws HeadlessException
注意:如果使用的图像在其调色板中具有比支持的最大值更多的颜色,则Toolkit实现将尝试将调色板最大化。 由于转换低分辨率图像是困难的,因此不能保证具有比系统支持的颜色更多的光标图像的质量。 因此,建议调用此方法,并使用合适的图像,以便不进行图像转换。
HeadlessException
- 如果GraphicsEnvironment.isHeadless()返回true
GraphicsEnvironment.isHeadless()
public boolean isFrameStateSupported(int state) throws HeadlessException
Frame
的状态。
该方法可以说明是否支持UI概念 ,例如最大化或图标化。
它总是会为“复合”状态返回false,如Frame.ICONIFIED|Frame.MAXIMIZED_VERT
。
换句话说,经验法则是只有具有单个帧状态常量的查询作为参数是有意义的。
请注意,支持一个给定的概念是平台相关的功能。 由于本机限制,Toolkit对象可能会将特定状态报告为受支持,但是同时Toolkit对象将无法将该状态应用于给定的帧。 这种情况有两个后果:
false
,实际上表示不支持给定的状态。 如果方法返回true
,给定状态可能仍然不被支持和/或不适用于特定的帧。 WindowEvent
收到的WindowEvent的WindowEvent.getNewState()
方法的价值 ,而不是假定给予setExtendedState()
方法的状态将被明确地应用。 有关更多信息,请参阅Frame.setExtendedState(int)
方法的文档 。 state
- 命名帧状态常量之一。
true
是这个框架状态是由这个Toolkit实现
false
支持的。
HeadlessException
- 如果
GraphicsEnvironment.isHeadless()
返回
true
。
Window.addWindowStateListener(java.awt.event.WindowStateListener)
public static String getProperty(String key, String defaultValue)
public final EventQueue getSystemEventQueue()
如果有一个安全管理员,那么它的checkPermission
方法被调用来检查AWTPermission("accessEventQueue")
。
EventQueue
对象
SecurityException
- 如果设置了安全管理员,并且拒绝访问
EventQueue
AWTPermission
protected abstract EventQueue getSystemEventQueueImpl()
EventQueue
实例,而无需检查访问。
出于安全考虑,这只能从Toolkit
子类中调用。
EventQueue
对象
public abstract java.awt.dnd.peer.DragSourceContextPeer createDragSourceContextPeer(DragGestureEvent dge) throws InvalidDnDOperationException
public <T extends DragGestureRecognizer> T createDragGestureRecognizer(类<T> abstractRecognizerClass, DragSource ds, Component c, int srcActions, DragGestureListener dgl)
abstractRecognizerClass
- 所需识别器的抽象类
ds
- DragSource
c
- DragGestureRecognizer的组件目标
srcActions
- 手势允许的动作
dgl
- DragGestureListener
GraphicsEnvironment.isHeadless()
public final Object getDesktopProperty(String propertyName)
protected final void setDesktopProperty(String name, Object newValue)
protected void initializeDesktopProperties()
public void addPropertyChangeListener(String name, PropertyChangeListener pcl)
PropertyChangeListenerProxy
对象时,将忽略其属性名称,并添加包装的侦听器。
如果name
是null
或pcl
是null
,则抛出异常并且不执行任何操作。
name
- 要收听的财产的名称
pcl
- 属性更改侦听器
PropertyChangeSupport.addPropertyChangeListener(String, PropertyChangeListener)
public void removePropertyChangeListener(String name, PropertyChangeListener pcl)
PropertyChangeListenerProxy
对象被删除时,其属性名称将被忽略,并且包装的侦听器被删除。
如果name
是null
或pcl
是null
,则不会抛出异常并且不执行任何操作。
name
- 要删除的属性的名称
pcl
- 属性更改侦听器
PropertyChangeSupport.removePropertyChangeListener(String, PropertyChangeListener)
public PropertyChangeListener[] getPropertyChangeListeners()
PropertyChangeListenerProxy
对象,将侦听器与桌面属性的名称相关联。
PropertyChangeListener
对象包含在java.beans.PropertyChangeListenerProxy
对象中,如果没有添加侦听器,则为空数组
PropertyChangeSupport.getPropertyChangeListeners()
public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
propertyName
- 命名属性
PropertyChangeListener
对象或没有添加此类侦听器的空数组
PropertyChangeSupport.getPropertyChangeListeners(String)
public boolean isAlwaysOnTopSupported()
Window.isAlwaysOnTopSupported()
。
true
,如果当前工具包支持永远在线模式,否则返回
false
Window.isAlwaysOnTopSupported()
,
Window.setAlwaysOnTop(boolean)
public abstract boolean isModalityTypeSupported(Dialog.ModalityType modalityType)
Dialog.ModalityType.MODELESS
。
modalityType
- 要检查此工具包支持的模态类型
true
,如果当前工具包支持给定模式类型,
false
false
Dialog.ModalityType
, Dialog.getModalityType()
, Dialog.setModalityType(java.awt.Dialog.ModalityType)
public abstract boolean isModalExclusionTypeSupported(Dialog.ModalExclusionType modalExclusionType)
Dialog.ModalExclusionType.NO_EXCLUDE
。
modalExclusionType
- 要检查此工具包支持的模态排除类型
true
,如果当前工具包支持给定的模式排除类型,
false
false
Dialog.ModalExclusionType
, Window.getModalExclusionType()
, Window.setModalExclusionType(java.awt.Dialog.ModalExclusionType)
public void addAWTEventListener(AWTEventListener listener, long eventMask)
eventMask
系统范围内的所有eventMask
。
首先,如果有一个安全管理员,它的checkPermission
方法被调用一个AWTPermission("listenToAllAWTEvents")
权限。 这可能会导致SecurityException。
eventMask
是要接收的事件类型的位掩码。 它是通过将AWTEvent中定义的事件掩码进行按位或AWTEvent
。
注意:事件监听器使用不推荐用于正常应用程序,但仅用于支持特殊目的设施,包括对可访问性的支持,事件记录/回放和诊断跟踪。 如果侦听器为空,则不会抛出异常,也不会执行任何操作。
listener
- 事件侦听器。
eventMask
- 要接收的事件类型的位掩码
SecurityException
- 如果安全管理器存在,并且其
checkPermission
方法不允许操作。
removeAWTEventListener(java.awt.event.AWTEventListener)
, getAWTEventListeners()
, SecurityManager.checkPermission(java.security.Permission)
, AWTEvent
, AWTPermission
, AWTEventListener
, AWTEventListenerProxy
public void removeAWTEventListener(AWTEventListener listener)
首先,如果有一个安全管理员,它的checkPermission
方法被调用一个AWTPermission("listenToAllAWTEvents")
权限。 这可能会导致SecurityException。
注意:事件监听器使用不推荐用于正常应用程序,但仅用于支持特殊目的设施,包括对可访问性的支持,事件记录/回放和诊断跟踪。 如果侦听器为空,则不会抛出异常,也不会执行任何操作。
listener
- 事件侦听器。
SecurityException
- 如果安全管理器存在,并且其
checkPermission
方法不允许操作。
addAWTEventListener(java.awt.event.AWTEventListener, long)
, getAWTEventListeners()
, SecurityManager.checkPermission(java.security.Permission)
, AWTEvent
, AWTPermission
, AWTEventListener
, AWTEventListenerProxy
public AWTEventListener[] getAWTEventListeners()
AWTEventListener
的所有AWTEventListener
的数组。
如果有一个安全管理员,它的checkPermission
方法被调用一个AWTPermission("listenToAllAWTEvents")
权限。
这可能会导致SecurityException。
可以在AWTEventListenerProxy
对象中返回侦听器,其中还包含给定侦听器的事件掩码。
请注意,多次添加的侦听器对象在返回的数组中只显示一次。
AWTEventListener
s或一个空数组,如果没有听众当前注册
SecurityException
- 如果安全管理器存在,并且其
checkPermission
方法不允许操作。
addAWTEventListener(java.awt.event.AWTEventListener, long)
, removeAWTEventListener(java.awt.event.AWTEventListener)
, SecurityManager.checkPermission(java.security.Permission)
, AWTEvent
, AWTPermission
, AWTEventListener
, AWTEventListenerProxy
public AWTEventListener[] getAWTEventListeners(long eventMask)
AWTEventListener
的所有AWTEventListener
s的数组,该数组监听eventMask
参数中指定的所有事件类型。
如果有一个安全管理员,它的checkPermission
方法被调用一个AWTPermission("listenToAllAWTEvents")
权限。
这可能会导致SecurityException。
可以在AWTEventListenerProxy
对象中返回侦听器,该对象还包含给定侦听器的事件掩码。
请注意,多次添加的侦听器对象在返回的数组中只显示一次。
eventMask
- 要侦听的事件类型的位掩码
AWTEventListener
上该工具箱为指定事件类型,一个空数组注册■如果没有这样的侦听当前已注册
SecurityException
- 如果安全管理器存在,并且其
checkPermission
方法不允许操作。
addAWTEventListener(java.awt.event.AWTEventListener, long)
, removeAWTEventListener(java.awt.event.AWTEventListener)
, SecurityManager.checkPermission(java.security.Permission)
, AWTEvent
, AWTPermission
, AWTEventListener
, AWTEventListenerProxy
public abstract Map<TextAttribute,?> mapInputMethodHighlight(InputMethodHighlight highlight) throws HeadlessException
highlight
- 输入法高亮
null
HeadlessException
- 如果
GraphicsEnvironment.isHeadless
返回true
GraphicsEnvironment.isHeadless()
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
System.getProperty(String propertyName)
, System.setProperty(String propertyName, String value)
, EventQueue