- 所有已实现的接口:
-
ImageObserver
,MenuContainer
,Serializable
Component
类是非菜单相关的抽象窗口工具包组件的抽象超类。类Component
也可以直接扩展以创建轻量级组件。轻量级组件是不与本地窗口关联的组件。相反,重量级组件与本地窗口关联。可以使用isLightweight()
方法来区分这两种组件。
轻量级和重量级组件可以混合在单个组件层次结构中。但是,为了正确操作这样一个混合的组件层次结构,整个层次结构必须有效。当层次结构无效时,例如在更改组件的边界之后,或者将组件添加/从容器中移除之后,整个层次结构必须通过在层次结构的顶部无效容器上调用Container.validate()
方法来验证。
序列化
需要注意的是,只有符合Serializable
协议的AWT监听器在存储对象时才会被保存。如果一个AWT对象具有未标记为可序列化的监听器,它们将在writeObject
时被丢弃。开发人员需要像往常一样考虑使对象可序列化的影响。需要注意的一种情况是:
import java.awt.*; import java.awt.event.*; import java.io.Serializable; class MyApp implements ActionListener, Serializable { BigObjectThatShouldNotBeSerializedWithAButton bigOne; Button aButton = new Button(); MyApp() { // 糟糕,现在aButton具有一个引用到bigOne的监听器! aButton.addActionListener(this); } public void actionPerformed(ActionEvent e) { System.out.println("Hello There"); } }在这个例子中,仅序列化
aButton
将导致MyApp
及其引用的所有内容也被序列化。问题在于监听器仅仅是因为巧合而可序列化,而不是出于设计。为了分离关于MyApp
和ActionListener
是否可序列化的决策,可以使用嵌套类,如下例所示:
import java.awt.*; import java.awt.event.*; import java.io.Serializable; class MyApp implements java.io.Serializable { BigObjectThatShouldNotBeSerializedWithAButton bigOne; Button aButton = new Button(); static class MyActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { System.out.println("Hello There"); } } MyApp() { aButton.addActionListener(new MyActionListener()); } }
注意: 有关AWT和Swing使用的绘制机制的更多信息,包括如何编写最有效的绘制代码,请参阅AWT和Swing中的绘制。
- 参见:
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected class
用于提供默认支持辅助功能的Component的内部类。static enum
组件基线随大小更改的常见方式的枚举。protected class
用于将离屏表面复制到组件的内部类。protected class
用于在组件上翻转缓冲区的内部类。 -
Field Summary
Modifier and TypeFieldDescriptionprotected AccessibleContext
与此Component
关联的AccessibleContext
。static final float
用于getAlignmentY
的易用常量。static final float
用于getAlignmentY
和getAlignmentX
的易用常量。static final float
用于getAlignmentX
的易用常量。static final float
用于getAlignmentX
的易用常量。static final float
用于getAlignmentY()
的易用常量。Fields declared in interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
已弃用。从JDK版本1.1开始,应将此组件注册为触发动作事件的ActionListener。void
将指定的弹出菜单添加到组件。void
将指定的组件监听器添加到此组件以接收组件事件。void
将指定的焦点监听器添加到此组件,以在此组件获得输入焦点时接收焦点事件。void
将指定的层次边界监听器添加到此组件,以在此容器所属的层次结构发生更改时接收层次边界事件。void
将指定的层次监听器添加到此组件,以在此容器所属的层次结构发生更改时接收层次更改事件。void
将指定的输入法监听器添加到此组件以接收输入法事件。void
将指定的键盘监听器添加到此组件以接收键盘事件。void
将指定的鼠标监听器添加到此组件以接收鼠标事件。void
将指定的鼠标移动监听器添加到此组件以接收鼠标移动事件。void
将指定的鼠标滚轮监听器添加到此组件以接收鼠标滚轮事件。void
通过将其连接到本地屏幕资源使此Component
可显示。void
向监听器列表添加PropertyChangeListener。void
addPropertyChangeListener
(String propertyName, PropertyChangeListener listener) 向特定属性的监听器列表添加PropertyChangeListener。void
applyComponentOrientation
(ComponentOrientation orientation) 设置此组件及其所有包含的组件的ComponentOrientation
属性。boolean
areFocusTraversalKeysSet
(int id) 返回给定焦点遍历操作的焦点遍历键集是否已为此组件明确定义。bounds()
已弃用。从JDK版本1.1开始,由getBounds()
替代。int
checkImage
(Image image, int width, int height, ImageObserver observer) 返回指定图像的屏幕表示的构造状态。int
checkImage
(Image image, ImageObserver observer) 返回指定图像的屏幕表示的构造状态。protected AWTEvent
coalesceEvents
(AWTEvent existingEvent, AWTEvent newEvent) 可能将正在发布的事件与现有事件合并。boolean
contains
(int x, int y) 检查此组件是否“包含”指定点,其中x
和y
被定义为相对于此组件的坐标系。boolean
检查此组件是否“包含”指定点,其中点的x和y坐标被定义为相对于此组件的坐标系。createImage
(int width, int height) 创建用于双缓冲的离屏可绘制图像。createImage
(ImageProducer producer) 从指定的图像生成器创建图像。createVolatileImage
(int width, int height) 创建用于双缓冲的易失性离屏可绘制图像。createVolatileImage
(int width, int height, ImageCapabilities caps) 创建具有给定功能的易失性离屏可绘制图像。void
已弃用。从JDK版本1.1开始,由dispatchEvent(AWTEvent e)
替代。void
disable()
已弃用。从JDK版本1.1开始,由setEnabled(boolean)
替代。protected final void
disableEvents
(long eventsToDisable) 禁止将指定事件掩码参数定义的事件传递到此组件。final void
将事件分派到此组件或其子组件之一。void
doLayout()
提示布局管理器重新布局此组件。void
enable()
已弃用。从JDK版本1.1开始,由setEnabled(boolean)
替代。void
enable
(boolean b) 已弃用。从JDK版本1.1开始,由setEnabled(boolean)
替代。protected final void
enableEvents
(long eventsToEnable) 启用将指定事件掩码参数定义的事件传递到此组件。void
enableInputMethods
(boolean enable) 为此组件启用或禁用输入法支持。protected void
firePropertyChange
(String propertyName, boolean oldValue, boolean newValue) 用于报告布尔属性的绑定属性更改支持。void
firePropertyChange
(String propertyName, byte oldValue, byte newValue) 报告绑定属性更改。void
firePropertyChange
(String propertyName, char oldValue, char newValue) 报告绑定属性更改。void
firePropertyChange
(String propertyName, double oldValue, double newValue) 报告绑定属性更改。void
firePropertyChange
(String propertyName, float oldValue, float newValue) 报告绑定属性更改。protected void
firePropertyChange
(String propertyName, int oldValue, int newValue) 用于报告整数属性的绑定属性更改支持。void
firePropertyChange
(String propertyName, long oldValue, long newValue) 报告绑定属性更改。void
firePropertyChange
(String propertyName, short oldValue, short newValue) 报告绑定属性更改。protected void
firePropertyChange
(String propertyName, Object oldValue, Object newValue) 用于报告对象属性的绑定属性更改支持。获取与此Component
关联的AccessibleContext
。float
返回沿x轴的对齐方式。float
返回沿y轴的对齐方式。获取此组件的背景颜色。int
getBaseline
(int width, int height) 返回基线。返回一个枚举,指示组件的基线随大小变化而变化的方式。以Rectangle
对象的形式获取此组件的边界。将此组件的边界存储到“返回值”rv中并返回rv。获取用于在输出设备上显示组件的ColorModel
实例。getComponentAt
(int x, int y) 确定此组件或其直接子组件是否包含(x,y)位置,如果是,则返回包含的组件。返回包含指定点的组件或子组件。返回在此组件上注册的所有组件侦听器的数组。检索用于对此组件中的元素或文本进行排序的与语言有关的方向。获取组件中设置的光标。获取与此Component
关联的DropTarget
。返回作为此组件的焦点遍历周期的焦点循环根的容器。返回在此组件上注册的所有焦点侦听器的数组。getFocusTraversalKeys
(int id) 返回此组件的给定遍历操作的焦点遍历键集。boolean
返回此组件是否启用焦点遍历键。getFont()
获取此组件的字体。getFontMetrics
(Font font) 获取指定字体的字体度量。获取此组件的前景颜色。为此组件创建一个图形上下文。获取与此Component
关联的GraphicsConfiguration
。int
返回此组件的当前高度。返回在此组件上注册的所有层次边界侦听器的数组。返回在此组件上注册的所有层次侦听器的数组。boolean
返回是否应忽略从操作系统接收到的绘制消息。获取此组件用于处理输入法在此组件中输入文本时的通信的输入上下文。返回在此组件上注册的所有输入法侦听器的数组。获取支持此组件的输入法请求处理程序。返回在此组件上注册的所有键盘侦听器的数组。<T extends EventListener>
T[]getListeners
(Class<T> listenerType) 返回当前在此Component
上注册为FooListener
的所有对象的数组。获取此组件的区域设置。以指定组件左上角的点的形式获取此组件的位置。getLocation
(Point rv) 将此组件的x、y原点存储到“返回值”rv中并返回rv。以屏幕坐标空间中指定组件左上角的点的形式获取此组件的位置。获取此组件的最大大小。获取此组件的最小大小。返回在此组件上注册的所有鼠标侦听器的数组。返回在此组件上注册的所有鼠标移动侦听器的数组。如果Component
直接位于鼠标指针下,则返回鼠标指针在此Component
的坐标空间中的位置,否则返回null
。返回在此组件上注册的所有鼠标滚轮侦听器的数组。getName()
获取组件的名称。获取此组件的父级。获取此组件的首选大小。返回在此组件上注册的所有属性更改侦听器的数组。getPropertyChangeListeners
(String propertyName) 返回已与指定属性关联的所有侦听器的数组。getSize()
以Dimension
对象的形式返回此组件的大小。将此组件的宽度/高度存储到“返回值”rv中并返回rv。获取此组件的工具包。final Object
获取此组件的锁定对象(拥有线程同步监视器的对象)用于AWT组件树和布局操作。int
getWidth()
返回此组件的当前宽度。int
getX()
返回组件原点的当前x坐标。int
getY()
返回组件原点的当前y坐标。boolean
已弃用。从JDK版本1.1开始,由processFocusEvent(FocusEvent)替代。boolean
handleEvent
(Event evt) 已弃用。从JDK版本1.1开始,由processEvent(AWTEvent)替代。boolean
hasFocus()
如果此Component
是焦点所有者,则返回true
。void
hide()
已弃用。从JDK版本1.1开始,由setVisible(boolean)
替代。boolean
imageUpdate
(Image img, int infoflags, int x, int y, int w, int h) 当图像发生变化时,重新绘制组件。boolean
inside
(int x, int y) 已弃用。从JDK版本1.1开始,由contains(int, int)替代。void
使此组件及其祖先无效。boolean
返回是否已为此组件显式设置背景颜色。boolean
返回是否已为此组件显式设置光标。boolean
确定此组件是否可显示。boolean
如果此组件绘制到稍后复制到屏幕的离屏图像(“缓冲区”)中,则返回true。boolean
确定此组件是否已启用。boolean
返回此组件是否可以聚焦。boolean
isFocusCycleRoot
(Container container) 返回指定容器是否是此组件的焦点遍历周期的焦点循环根。boolean
如果此Component
是焦点所有者,则返回true
。boolean
已弃用。从1.4版本开始,由isFocusable()
替代。boolean
返回是否已为此组件显式设置字体。boolean
返回是否已为此组件显式设置前景颜色。boolean
轻量级组件没有本机工具包对等体。boolean
如果最大大小已设置为非null
值,则返回true,否则返回false。boolean
返回是否已使用非空值调用setMinimumSize
。boolean
isOpaque()
如果此组件完全不透明,则返回true,默认情况下返回false。boolean
如果首选大小已设置为非null
值,则返回true,否则返回false。boolean
确定此组件是否显示在屏幕上。boolean
isValid()
确定此组件是否有效。boolean
确定此组件在其父组件可见时是否应可见。boolean
已弃用。从JDK版本1.1开始,由processKeyEvent(KeyEvent)替代。boolean
已弃用。从JDK版本1.1开始,由processKeyEvent(KeyEvent)替代。void
layout()
已弃用。从JDK版本1.1开始,由doLayout()
替代。void
list()
将此组件的列表打印到标准系统输出流System.out
。void
list
(PrintStream out) 将此组件的列表打印到指定的输出流。void
list
(PrintStream out, int indent) 以指定缩进开始,将列表打印到指定的打印流。void
list
(PrintWriter out) 将列表打印到指定的打印写入器。void
list
(PrintWriter out, int indent) 以指定缩进开始,将列表打印到指定的打印写入器。locate
(int x, int y) 已弃用。从JDK版本1.1开始,由getComponentAt(int, int)替代。location()
已弃用。从JDK版本1.1开始,由getLocation()
替代。boolean
已弃用。从JDK版本1.1开始,由processFocusEvent(FocusEvent)替代。已弃用。从JDK版本1.1开始,由getMinimumSize()
替代。boolean
已弃用。从JDK版本1.1开始,由processMouseEvent(MouseEvent)替代。boolean
Deprecated.As of JDK version 1.1, replaced by processMouseMotionEvent(MouseEvent).boolean
mouseEnter
(Event evt, int x, int y) Deprecated.As of JDK version 1.1, replaced by processMouseEvent(MouseEvent).boolean
Deprecated.As of JDK version 1.1, replaced by processMouseEvent(MouseEvent).boolean
Deprecated.As of JDK version 1.1, replaced by processMouseMotionEvent(MouseEvent).boolean
Deprecated.As of JDK version 1.1, replaced by processMouseEvent(MouseEvent).void
move
(int x, int y) 已弃用。自JDK版本1.1起,已被setLocation(int, int)
替代。void
已弃用。自JDK版本1.1起,已被transferFocus()替代。void
绘制此组件。void
绘制此组件及其所有子组件。protected String
返回表示此组件状态的字符串。boolean
已弃用。自JDK版本1.1起,已被dispatchEvent(AWTEvent)替代。已弃用。自JDK版本1.1起,已被getPreferredSize()
替代。boolean
prepareImage
(Image image, int width, int height, ImageObserver observer) 准备在指定宽度和高度上渲染此组件的图像。boolean
prepareImage
(Image image, ImageObserver observer) 准备在此组件上渲染图像。void
打印此组件。void
打印此组件及其所有子组件。protected void
通过将组件事件分派到任何已注册的ComponentListener
对象,处理发生在此组件上的组件事件。protected void
处理发生在此组件上的事件。protected void
通过将焦点事件分派到任何已注册的FocusListener
对象,处理发生在此组件上的焦点事件。protected void
通过将层次边界事件分派到任何已注册的HierarchyBoundsListener
对象,处理发生在此组件上的层次边界事件。protected void
通过将层次事件分派到任何已注册的HierarchyListener
对象,处理发生在此组件上的层次事件。protected void
通过将输入法事件分派到任何已注册的InputMethodListener
对象,处理发生在此组件上的输入法事件。protected void
通过将键盘事件分派到任何已注册的KeyListener
对象,处理发生在此组件上的键盘事件。protected void
通过将鼠标事件分派到任何已注册的MouseListener
对象,处理发生在此组件上的鼠标事件。protected void
通过将鼠标移动事件分派到任何已注册的MouseMotionListener
对象,处理发生在此组件上的鼠标移动事件。protected void
通过将鼠标滚轮事件分派到任何已注册的MouseWheelListener
对象,处理发生在此组件上的鼠标滚轮事件。void
remove
(MenuComponent popup) 从组件中移除指定的弹出菜单。void
移除指定的组件侦听器,使其不再从此组件接收组件事件。void
移除指定的焦点侦听器,使其不再从此组件接收焦点事件。void
移除指定的层次边界侦听器,使其不再从此组件接收层次边界事件。void
移除指定的层次侦听器,使其不再从此组件接收层次更改事件。void
移除指定的输入法侦听器,使其不再从此组件接收输入法事件。void
移除指定的键盘侦听器,使其不再从此组件接收键盘事件。void
移除指定的鼠标侦听器,使其不再从此组件接收鼠标事件。void
移除指定的鼠标移动侦听器,使其不再从此组件接收鼠标移动事件。void
移除指定的鼠标滚轮侦听器,使其不再从此组件接收鼠标滚轮事件。void
通过销毁其本机屏幕资源,使此Component
不可显示。void
从侦听器列表中移除PropertyChangeListener。void
removePropertyChangeListener
(String propertyName, PropertyChangeListener listener) 从特定属性的侦听器列表中移除PropertyChangeListener
。void
repaint()
重绘此组件。void
repaint
(int x, int y, int width, int height) 重绘此组件的指定矩形。void
repaint
(long tm) 重绘组件。void
repaint
(long tm, int x, int y, int width, int height) 在tm
毫秒内重绘此组件的指定矩形。void
请求此组件获取输入焦点,并使此组件的顶层祖先成为焦点窗口。protected boolean
requestFocus
(boolean temporary) 请求此Component
获取输入焦点,并使此Component
的顶层祖先成为焦点Window
。protected boolean
requestFocus
(boolean temporary, FocusEvent.Cause cause) 通过cause
的原因请求此Component
获取输入焦点,并使此Component
的顶层祖先成为焦点Window
。void
requestFocus
(FocusEvent.Cause cause) 通过cause
的原因请求此组件获取输入焦点,并使此组件的顶层祖先成为焦点窗口。boolean
请求此组件获取输入焦点,如果此组件的顶层祖先已经是焦点窗口。protected boolean
requestFocusInWindow
(boolean temporary) 请求此Component
获取输入焦点,如果此Component
的顶层祖先已经是焦点Window
。boolean
通过cause
的原因请求此组件获取输入焦点,如果此组件的顶层祖先已经是焦点窗口。void
reshape
(int x, int y, int width, int height) 已弃用。自JDK版本1.1起,已被setBounds(int, int, int, int)
替代。void
resize
(int width, int height) 已弃用。自JDK版本1.1起,已被setSize(int, int)
替代。void
已弃用。自JDK版本1.1起,已被setSize(Dimension)
替代。void
重新验证组件层次结构,直到最近的验证根。void
设置此组件的背景颜色。void
setBounds
(int x, int y, int width, int height) 移动并调整此组件的大小。void
将此组件移动并调整大小以符合新的边界矩形r
。void
设置用于对此组件中的元素或文本进行排序的与语言相关的方向。void
将光标图像设置为指定的光标。void
将DropTarget
与此组件关联。void
setEnabled
(boolean b) 根据参数b
的值启用或禁用此组件。void
setFocusable
(boolean focusable) 将此组件的可聚焦状态设置为指定值。void
setFocusTraversalKeys
(int id, Set<? extends AWTKeyStroke> keystrokes) 为此组件的给定遍历操作设置焦点遍历键。void
setFocusTraversalKeysEnabled
(boolean focusTraversalKeysEnabled) 设置是否为此组件启用焦点遍历键。void
设置此组件的字体。void
设置此组件的前景颜色。void
setIgnoreRepaint
(boolean ignoreRepaint) 设置是否应忽略从操作系统接收的绘制消息。void
设置此组件的区域设置。void
setLocation
(int x, int y) 将此组件移动到新位置。void
setLocation
(Point p) 将此组件移动到新位置。void
setMaximumSize
(Dimension maximumSize) 将此组件的最大大小设置为常量值。void
setMinimumSize
(Dimension minimumSize) 将此组件的最小大小设置为常量值。void
setMixingCutoutShape
(Shape shape) 为此轻量级组件设置“混合剪切”形状。void
将组件的名称设置为指定的字符串。void
setPreferredSize
(Dimension preferredSize) 将此组件的首选大小设置为常量值。void
setSize
(int width, int height) 调整此组件的大小,使其宽度为width
,高度为height
。void
调整此组件的大小,使其宽度为d.width
,高度为d.height
。void
setVisible
(boolean b) 根据参数b
的值显示或隐藏此组件。void
show()
已弃用。自JDK版本1.1起,已被setVisible(boolean)
替代。void
show
(boolean b) 已弃用。自JDK版本1.1起,已被setVisible(boolean)
替代。size()
已弃用。自JDK版本1.1起,已被getSize()
替代。toString()
返回此组件及其值的字符串表示形式。void
将焦点转移到下一个组件,就好像此组件是焦点所有者。void
将焦点转移到上一个组件,就好像此组件是焦点所有者。void
将焦点上移一个焦点遍历周期。void
更新此组件。void
validate()
验证此组件。
-
Field Details
-
TOP_ALIGNMENT
public static final float TOP_ALIGNMENTgetAlignmentY()
的易用性常量。指定组件顶部的对齐方式。- 参见:
-
CENTER_ALIGNMENT
public static final float CENTER_ALIGNMENTgetAlignmentY
和getAlignmentX
的易用性常量。指定组件中心的对齐方式。- 参见:
-
BOTTOM_ALIGNMENT
public static final float BOTTOM_ALIGNMENTgetAlignmentY
的易用性常量。指定组件底部的对齐方式。- 参见:
-
LEFT_ALIGNMENT
public static final float LEFT_ALIGNMENTgetAlignmentX
的易用性常量。指定组件左侧的对齐方式。- 参见:
-
RIGHT_ALIGNMENT
public static final float RIGHT_ALIGNMENTgetAlignmentX
的易用性常量。指定组件右侧的对齐方式。- 参见:
-
accessibleContext
与此Component
关联的AccessibleContext
。
-
-
Constructor Details
-
Component
protected Component()构造一个新组件。类Component
可以直接扩展以创建一个不使用不透明本机窗口的轻量级组件。轻量级组件必须由组件树中更高处的本机容器托管(例如,由Frame
对象)。
-
-
Method Details
-
getName
获取组件的名称。- 返回:
- 此组件的名称
- 自从:
- 1.1
- 参见:
-
setName
将组件的名称设置为指定的字符串。- 参数:
-
name
- 要成为此组件名称的字符串 - 自从:
- 1.1
- 参见:
-
getParent
获取此组件的父级。- 返回:
- 此组件的父级容器
- 自从:
- 1.0
-
setDropTarget
将DropTarget
与此组件关联。只有在组件启用时,Component
才会接收拖放。- 参数:
-
dt
- DropTarget - 参见:
-
getDropTarget
获取与此Component
关联的DropTarget
。- 返回:
- drop target
-
getGraphicsConfiguration
获取与此Component
关联的GraphicsConfiguration
。如果尚未为Component
分配特定的GraphicsConfiguration
,则返回Component
对象的顶层容器的GraphicsConfiguration
。如果已创建但尚未添加到Container
中,此方法返回null
。- 返回:
-
此
Component
使用的GraphicsConfiguration
或null
- 自从:
- 1.3
-
getTreeLock
获取此组件的锁定对象(拥有线程同步监视器的对象),用于 AWT 组件树和布局操作。- 返回:
- 此组件的锁定对象
-
getToolkit
获取此组件的工具包。请注意,包含组件的框架控制该组件使用的工具包。因此,如果将组件从一个框架移动到另一个框架,则它使用的工具包可能会更改。- 返回:
- 此组件的工具包
- 自从:
- 1.0
-
isValid
public boolean isValid()确定此组件是否有效。当组件在其父容器内正确调整大小和定位,并且所有子组件也有效时,组件就是有效的。为了考虑对等体的大小要求,组件在首次显示在屏幕上之前会被标记为无效。当父容器完全实现时,其所有组件都将有效。- 返回:
-
如果组件有效,则返回
true
,否则返回false
- 自从:
- 1.0
- 参见:
-
isDisplayable
public boolean isDisplayable()确定此组件是否在屏幕上显示。这意味着组件必须可见,并且必须在一个可见且显示的容器中。注意: 有时无法检测到组件实际对用户可见。这可能发生在以下情况下:
- 组件已添加到可见的
ScrollPane
,但组件当前不在滚动窗格的视口中。 - 组件被另一个组件或容器遮挡。
- 返回:
-
如果组件正在显示,则返回
true
,否则返回false
- 自从:
- 1.2
- 参见:
- 组件已添加到可见的
-
isVisible
public boolean isVisible()确定此组件在其父组件可见时是否应可见。组件最初是可见的,但顶级组件(如Frame
对象)除外。- 返回:
-
如果组件可见,则返回
true
,否则返回false
- 自从:
- 1.0
- 参见:
-
getMousePosition
如果鼠标指针直接位于此Component
的坐标空间下,则返回鼠标指针的位置,否则返回null
。如果组件未显示在屏幕上,则即使鼠标指针位于组件应显示的区域上方,此方法也会返回null
。如果组件部分或完全被其他组件或本机窗口遮挡,则此方法仅在鼠标指针位于组件未被遮挡部分上方时返回非空值。对于
Container
,如果鼠标位于Container
本身或其任何后代上方,则返回非空值。如果需要排除子组件,请使用Container.getMousePosition(boolean)
。有时确切的鼠标坐标并不重要,唯一重要的是特定的
Component
是否位于鼠标指针下方。如果此方法的返回值为null
,则鼠标指针不直接位于Component
上方。- 返回:
-
相对于此
Component
的鼠标坐标,或null
- 抛出:
-
HeadlessException
- 如果 GraphicsEnvironment.isHeadless() 返回 true - 自从:
- 1.5
- 参见:
-
isShowing
public boolean isShowing()确定此组件是否显示在屏幕上。这意味着组件必须可见,并且必须在一个可见且显示的容器中。注意: 有时无法检测到组件实际对用户可见。这可能发生在以下情况下:
- 组件已添加到可见的
ScrollPane
,但组件当前不在滚动窗格的视口中。 - 组件被另一个组件或容器遮挡。
- 返回:
-
如果组件正在显示,则返回
true
,否则返回false
- 自从:
- 1.0
- 参见:
- 组件已添加到可见的
-
isEnabled
public boolean isEnabled()确定此组件是否已启用。已启用的组件可以响应用户输入并生成事件。组件最初默认情况下是启用的。可以通过调用其setEnabled
方法来启用或禁用组件。- 返回:
-
如果组件已启用,则返回
true
,否则返回false
- 自从:
- 1.0
- 参见:
-
setEnabled
public void setEnabled(boolean b) 根据参数b
的值启用或禁用此组件。已启用的组件可以响应用户输入并生成事件。组件最初默认情况下是启用的。注意:禁用轻量级组件不会阻止其接收 MouseEvents。
注意:禁用重量级容器会阻止此容器中的所有组件接收任何输入事件。但是,禁用轻量级容器仅影响此容器。
- 参数:
-
b
- 如果为true
,则此组件已启用;否则此组件已禁用 - 自从:
- 1.1
- 参见:
-
enable
Deprecated.As of JDK version 1.1, replaced bysetEnabled(boolean)
. -
enable
Deprecated.As of JDK version 1.1, replaced bysetEnabled(boolean)
.启用或禁用此组件。- 参数:
-
b
-true
以启用此组件;否则false
-
disable
Deprecated.As of JDK version 1.1, replaced bysetEnabled(boolean)
. -
isDoubleBuffered
public boolean isDoubleBuffered()如果此组件绘制到稍后复制到屏幕的离屏图像("缓冲区")上,则返回 true。支持双缓冲的组件子类应重写此方法,以在启用双缓冲时返回 true。- 返回:
- 默认为 false
-
enableInputMethods
public void enableInputMethods(boolean enable) 启用或禁用此组件的输入法支持。如果启用了输入法支持并且组件还处理键盘事件,则传入的事件将提供给当前输入法,只有在输入法未消耗事件时才会由组件处理或分派给其侦听器。默认情况下,启用输入法支持。- 参数:
-
enable
- true 表示启用,false 表示禁用 - 自版本:
- 1.2
- 另请参阅:
-
setVisible
public void setVisible(boolean b) 根据参数b
的值显示或隐藏此组件。此方法更改与布局相关的信息,因此会使组件层次结构无效。
- 参数:
-
b
- 如果为true
,则显示此组件;否则隐藏此组件 - 自版本:
- 1.1
- 另请参阅:
-
show
Deprecated.As of JDK version 1.1, replaced bysetVisible(boolean)
. -
show
Deprecated.As of JDK version 1.1, replaced bysetVisible(boolean)
.使此组件可见或不可见。- 参数:
-
b
-true
表示使此组件可见;否则为false
-
hide
Deprecated.As of JDK version 1.1, replaced bysetVisible(boolean)
. -
getForeground
获取此组件的前景色。- 返回:
- 此组件的前景色;如果此组件没有前景色,则返回其父级的前景色
- 自版本:
- 1.0
- 另请参阅:
-
setForeground
设置此组件的前景色。- 参数:
-
c
- 要设置为此组件前景色的颜色;如果此参数为null
,则此组件将继承其父级的前景色 - 自版本:
- 1.0
- 另请参阅:
-
isForegroundSet
public boolean isForegroundSet()返回此组件的前景色是否已明确设置。如果此方法返回false
,则此组件正在从祖先继承其前景色。- 返回:
-
如果此组件的前景色已明确设置,则返回
true
;否则返回false
。 - 自版本:
- 1.4
-
getBackground
获取此组件的背景色。- 返回:
- 此组件的背景色;如果此组件没有背景色,则返回其父级的背景色
- 自版本:
- 1.0
- 另请参阅:
-
setBackground
设置此组件的背景色。背景色会影响每个组件的不同部分,受背景色影响的组件部分在操作系统之间可能有所不同。
- 参数:
-
c
- 要设置为此组件颜色的颜色;如果此参数为null
,则此组件将继承其父级的背景色 - 自版本:
- 1.0
- 另请参阅:
-
isBackgroundSet
public boolean isBackgroundSet()返回此组件的背景色是否已明确设置。如果此方法返回false
,则此组件正在从祖先继承其背景色。- 返回:
-
如果此组件的背景色已明确设置,则返回
true
;否则返回false
。 - 自版本:
- 1.4
-
getFont
获取此组件的字体。- 指定者:
-
getFont
在接口MenuContainer
- 返回:
- 此组件的字体;如果未为此组件设置字体,则返回其父级的字体
- 自版本:
- 1.0
- 另请参阅:
-
setFont
设置此组件的字体。此方法更改与布局相关的信息,因此会使组件层次结构无效。
- 参数:
-
f
- 要设置为此组件字体的字体;如果此参数为null
,则此组件将继承其父级的字体 - 自版本:
- 1.0
- 另请参阅:
-
isFontSet
public boolean isFontSet()返回此组件的字体是否已明确设置。如果此方法返回false
,则此组件正在从祖先继承其字体。- 返回:
-
如果此组件的字体已明确设置,则返回
true
;否则返回false
。 - 自版本:
- 1.4
-
getLocale
获取此组件的区域设置。- 返回:
- 此组件的区域设置;如果此组件没有区域设置,则返回其父级的区域设置
- 抛出:
-
IllegalComponentStateException
- 如果Component
没有自己的区域设置并且尚未添加到包含层次结构中,以便可以从包含父级确定区域设置 - 自版本:
- 1.1
- 另请参阅:
-
setLocale
设置此组件的区域设置。这是一个绑定属性。此方法更改与布局相关的信息,因此会使组件层次结构无效。
- 参数:
-
l
- 要设置为此组件区域设置的区域设置 - 自版本:
- 1.1
- 另请参阅:
-
getColorModel
获取用于在输出设备上显示组件的ColorModel
实例。- 返回:
- 此组件使用的颜色模型
- 自版本:
- 1.0
- 另请参阅:
-
getLocation
以指定组件左上角的点形式获取此组件的位置。位置将相对于父级的坐标空间。由于本机事件处理的异步性质,此方法可能返回过时的值(例如,在快速连续调用
setLocation()
后)。因此,推荐获取组件位置的方法是在java.awt.event.ComponentListener.componentMoved()
中,该方法在操作系统完成移动组件后调用。- 返回:
-
代表组件边界左上角的
Point
实例,位于组件父级的坐标空间中 - 自版本:
- 1.1
- 另请参阅:
-
getLocationOnScreen
以指定组件左上角的点形式获取此组件在屏幕坐标空间中的位置。- 返回:
-
代表组件边界左上角的
Point
实例,位于屏幕的坐标空间中 - 抛出:
-
IllegalComponentStateException
- 如果组件未显示在屏幕上 - 另请参阅:
-
location
Deprecated.As of JDK version 1.1, replaced bygetLocation()
.返回此组件左上角的位置。- 返回:
- 此组件左上角的位置
-
setLocation
public void setLocation(int x, int y) 将此组件移动到新位置。新位置的左上角由父级坐标空间中的x
和y
参数指定。此方法更改与布局相关的信息,因此会使组件层次结构无效。
- 参数:
-
x
- 新位置左上角在父级坐标空间中的 x 坐标 -
y
- 新位置左上角在父级坐标空间中的 y 坐标 - 自版本:
- 1.1
- 另请参阅:
-
move
Deprecated.As of JDK version 1.1, replaced bysetLocation(int, int)
.将此组件移动到新位置。- 参数:
-
x
- 新位置左上角在父级坐标空间中的 x 坐标 -
y
- 新位置左上角在父级坐标空间中的 y 坐标
-
setLocation
将此组件移动到新位置。新位置的左上角由点p
指定。点p
以父级坐标空间给出。此方法更改与布局相关的信息,因此使组件层次结构无效。
- 参数:
-
p
- 指定新位置左上角的点,以此组件的父级坐标空间给出 - 自版本:
- 1.1
- 另请参阅:
-
getSize
返回此组件的大小,以Dimension
对象的形式表示。Dimension
对象的height
字段包含此组件的高度,Dimension
对象的width
字段包含此组件的宽度。- 返回:
-
一个
Dimension
对象,指示此组件的大小 - 自版本:
- 1.1
- 另请参阅:
-
size
Deprecated.As of JDK version 1.1, replaced bygetSize()
.返回此组件的大小,以Dimension
对象的形式表示。- 返回:
-
指示此组件大小的
Dimension
对象
-
setSize
public void setSize(int width, int height) 调整此组件的大小,使其具有宽度width
和高度height
。此方法更改与布局相关的信息,因此使组件层次结构无效。
- 参数:
-
width
- 以像素为单位的此组件的新宽度 -
height
- 以像素为单位的此组件的新高度 - 自版本:
- 1.1
- 另请参阅:
-
resize
Deprecated.As of JDK version 1.1, replaced bysetSize(int, int)
.调整此组件的大小。- 参数:
-
width
- 组件的新宽度 -
height
- 组件的新高度
-
setSize
调整此组件的大小,使其具有宽度d.width
和高度d.height
。此方法更改与布局相关的信息,因此使组件层次结构无效。
- 参数:
-
d
- 指定此组件新大小的维度 - 抛出:
-
NullPointerException
- 如果d
为null
- 自版本:
- 1.1
- 另请参阅:
-
resize
Deprecated.As of JDK version 1.1, replaced bysetSize(Dimension)
.调整此组件的大小,使其具有宽度d.width
和高度d.height
。- 参数:
-
d
- 此组件的新大小
-
getBounds
以Rectangle
对象的形式获取此组件的边界。边界指定此组件的宽度、高度和相对于其父级的位置。- 返回:
- 指示此组件边界的矩形
- 另请参阅:
-
bounds
Deprecated.As of JDK version 1.1, replaced bygetBounds()
.返回此组件的边界矩形。- 返回:
- 此组件的边界矩形
-
setBounds
public void setBounds(int x, int y, int width, int height) 移动并调整此组件的大小。左上角的新位置由x
和y
指定,新大小由width
和height
指定。此方法更改与布局相关的信息,因此使组件层次结构无效。
- 参数:
-
x
- 此组件的新x坐标 -
y
- 此组件的新y坐标 -
width
- 此组件的新width
-
height
- 此组件的新height
- 自版本:
- 1.1
- 另请参阅:
-
reshape
Deprecated.As of JDK version 1.1, replaced bysetBounds(int, int, int, int)
.重新塑造此组件的边界矩形。- 参数:
-
x
- 矩形左上角的x坐标 -
y
- 矩形左上角的y坐标 -
width
- 矩形的宽度 -
height
- 矩形的高度
-
setBounds
移动并调整此组件的大小,以符合新的边界矩形r
。此组件的新位置由r.x
和r.y
指定,新大小由r.width
和r.height
指定。此方法更改与布局相关的信息,因此使组件层次结构无效。
- 参数:
-
r
- 此组件的新边界矩形 - 抛出:
-
NullPointerException
- 如果r
为null
- 自版本:
- 1.1
- 另请参阅:
-
getX
public int getX()返回组件原点的当前x坐标。此方法比编写component.getBounds().x
或component.getLocation().x
更可取,因为它不会导致任何堆分配。- 返回:
- 组件原点的当前x坐标
- 自版本:
- 1.2
-
getY
public int getY()返回组件原点的当前y坐标。此方法比编写component.getBounds().y
或component.getLocation().y
更可取,因为它不会导致任何堆分配。- 返回:
- 组件原点的当前y坐标
- 自版本:
- 1.2
-
getWidth
public int getWidth()返回此组件的当前宽度。此方法比编写component.getBounds().width
或component.getSize().width
更可取,因为它不会导致任何堆分配。- 返回:
- 此组件的当前宽度
- 自版本:
- 1.2
-
getHeight
public int getHeight()返回此组件的当前高度。此方法比编写component.getBounds().height
或component.getSize().height
更可取,因为它不会导致任何堆分配。- 返回:
- 此组件的当前高度
- 自版本:
- 1.2
-
getBounds
将此组件的边界存储到“返回值”rv中并返回rv。如果rv为null
,则会分配一个新的Rectangle
。如果调用者想要避免在堆上分配新的Rectangle
对象,则此版本的getBounds
很有用。- 参数:
-
rv
- 返回值,修改为组件的边界 - 返回:
- rv
-
getSize
将此组件的宽度/高度存储到“返回值”rv中并返回rv。如果rv为null
,则会分配一个新的Dimension
对象。如果调用者想要避免在堆上分配新的Dimension
对象,则此版本的getSize
很有用。- 参数:
-
rv
- 返回值,修改为组件的大小 - 返回:
- rv
-
getLocation
将此组件的x、y原点存储到“返回值”rv中并返回rv。如果rv为null
,则会分配一个新的Point
。如果调用者想要避免在堆上分配新的Point
对象,则此版本的getLocation
很有用。- 参数:
-
rv
- 返回值,修改为组件的位置 - 返回:
- rv
-
isOpaque
public boolean isOpaque()如果此组件完全不透明,则返回true,默认返回false。不透明组件会绘制其矩形区域内的每个像素。非不透明组件仅绘制部分像素,允许其下方的像素“透过”。因此,未完全绘制其像素的组件提供一定程度的透明性。
始终保证完全绘制其内容的子类应重写此方法并返回true。
- 返回:
- 如果此组件完全不透明,则为true
- 自版本:
- 1.2
- 另请参阅:
-
isLightweight
public boolean isLightweight()一个轻量级组件没有本地工具包对等体。除了在这个包中定义的类似于Button
或Scrollbar
的Component
和Container
的子类是轻量级的。所有的Swing组件都是轻量级的。如果这个组件不可显示,那么这个方法将始终返回
false
,因为无法确定不可显示组件的权重。- 返回:
- 如果这个组件有一个轻量级对等体,则返回true;如果它有一个本地对等体或没有对等体,则返回false
- 自:
- 1.2
- 参见:
-
setPreferredSize
将此组件的首选大小设置为一个常量值。随后调用getPreferredSize
将始终返回此值。将首选大小设置为null
将恢复默认行为。- 参数:
-
preferredSize
- 新的首选大小,或null - 自:
- 1.5
- 参见:
-
isPreferredSizeSet
public boolean isPreferredSizeSet()如果首选大小已设置为非null
值,则返回true,否则返回false。- 返回:
-
如果使用非null值调用了
setPreferredSize
,则返回true。 - 自:
- 1.5
-
getPreferredSize
获取此组件的首选大小。- 返回:
- 一个表示此组件首选大小的尺寸对象
- 参见:
-
preferredSize
Deprecated.As of JDK version 1.1, replaced bygetPreferredSize()
.返回组件的首选大小。- 返回:
- 组件的首选大小
-
setMinimumSize
将此组件的最小大小设置为一个常量值。随后调用getMinimumSize
将始终返回此值。将最小大小设置为null
将恢复默认行为。- 参数:
-
minimumSize
- 此组件的新最小大小 - 自:
- 1.5
- 参见:
-
isMinimumSizeSet
public boolean isMinimumSizeSet()返回setMinimumSize
是否已使用非null值调用。- 返回:
-
如果使用非null值调用了
setMinimumSize
,则返回true。 - 自:
- 1.5
-
getMinimumSize
获取此组件的最小大小。- 返回:
- 一个表示此组件最小大小的尺寸对象
- 参见:
-
minimumSize
Deprecated.As of JDK version 1.1, replaced bygetMinimumSize()
.返回此组件的最小大小。- 返回:
- 此组件的最小大小
-
setMaximumSize
将此组件的最大大小设置为一个常量值。随后调用getMaximumSize
将始终返回此值。将最大大小设置为null
将恢复默认行为。- 参数:
-
maximumSize
- 包含所需最大允许大小的Dimension
- 自:
- 1.5
- 参见:
-
isMaximumSizeSet
public boolean isMaximumSizeSet()如果最大大小已设置为非null
值,则返回true,否则返回false。- 返回:
-
如果
maximumSize
为非null
,则返回true,否则返回false - 自:
- 1.5
-
getMaximumSize
获取此组件的最大大小。- 返回:
- 一个表示此组件最大大小的尺寸对象
- 参见:
-
getAlignmentX
public float getAlignmentX()返回沿x轴的对齐方式。这指定组件希望相对于其他组件对齐的方式。该值应该是介于0和1之间的数字,其中0表示沿原点对齐,1表示沿原点最远对齐,0.5表示居中对齐,等等。- 返回:
- 此组件的水平对齐
-
getAlignmentY
public float getAlignmentY()返回沿y轴的对齐方式。这指定组件希望相对于其他组件对齐的方式。该值应该是介于0和1之间的数字,其中0表示沿原点对齐,1表示沿原点最远对齐,0.5表示居中对齐,等等。- 返回:
- 此组件的垂直对齐
-
getBaseline
public int getBaseline(int width, int height) 返回基线。基线是从组件顶部测量的。此方法主要用于LayoutManager
来沿其基线对齐组件。返回值小于0表示此组件没有合理的基线,LayoutManager
不应该将此组件与其基线对齐。默认实现返回-1。支持基线的子类应适当重写。如果返回值>= 0,则表示组件对于任何大小>=最小大小都有有效的基线,并且
getBaselineResizeBehavior
可用于确定基线随大小变化的方式。- 参数:
-
width
- 获取基线的宽度 -
height
- 获取基线的高度 - 返回:
- 基线或<0表示没有合理的基线
- 抛出:
-
IllegalArgumentException
- 如果宽度或高度<0 - 自:
- 1.6
- 参见:
-
getBaselineResizeBehavior
返回一个枚举,指示组件的基线随大小变化的方式。此方法主要用于布局管理器和GUI构建器。默认实现返回
BaselineResizeBehavior.OTHER
。支持基线的子类应适当重写。子类不应返回null
;如果无法计算基线,则返回BaselineResizeBehavior.OTHER
。调用者应首先使用getBaseline
请求基线,如果返回值>= 0,则使用此方法。即使getBaseline
返回小于0的值,此方法也可以返回BaselineResizeBehavior.OTHER
之外的值。- 返回:
- 一个枚举,指示组件大小变化时基线的变化方式
- 自:
- 1.6
- 参见:
-
doLayout
public void doLayout()提示布局管理器布局此组件。通常在组件(更具体地说,容器)验证时调用此方法。- 参见:
-
layout
Deprecated.As of JDK version 1.1, replaced bydoLayout()
. -
validate
public void validate()验证此组件。术语“验证”的含义由此类的祖先定义。有关详细信息,请参见
Container.validate()
。- 自:
- 1.0
- 参见:
-
invalidate
public void invalidate()使此组件及其祖先失效。默认情况下,组件的所有祖先直到层次结构的最顶层容器都被标记为无效。如果将
java.awt.smartInvalidate
系统属性设置为true
,则无效标记将停止在此组件的最近验证根处。标记容器为“无效”表示需要对容器进行布局。当任何与布局相关的信息更改时(例如设置组件的边界或将组件添加到容器中),将自动调用此方法。
此方法可能经常被调用,因此应该快速工作。
- 自:
- 1.0
- 参见:
-
revalidate
public void revalidate()重新验证组件层次结构,直到最近的验证根。此方法首先使组件层次结构从此组件开始直到最近的验证根失效。然后,从最近的验证根开始验证组件层次结构。
这是一个方便的方法,旨在帮助应用程序开发人员避免手动查找验证根。基本上,它相当于首先在此组件上调用
invalidate()
方法,然后在最近的验证根上调用validate()
方法。- 自从:
- 1.7
- 参见:
-
getGraphics
为此组件创建一个图形上下文。如果此组件当前不可显示,则此方法将返回null
。- 返回:
-
此组件的图形上下文,如果没有则返回
null
- 自从:
- 1.0
- 参见:
-
getFontMetrics
获取指定字体的字体度量。警告:由于字体度量受FontRenderContext
的影响,而此方法不提供FontRenderContext
,因此它只能返回默认呈现上下文的度量,这可能与在组件上呈现时使用的不匹配,如果使用Graphics2D
功能。相反,可以通过调用Graphics.getFontMetrics()
或Font
类上的文本测量API在呈现时获取度量。- 参数:
-
font
- 要获取字体度量的字体 - 返回:
-
font
的字体度量 - 自从:
- 1.0
- 参见:
-
setCursor
将光标图像设置为指定的光标。当此组件的contains
方法对当前光标位置返回true,并且此组件可见、可显示和启用时,将显示此光标图像。设置Container
的光标会导致该光标显示在容器的所有子组件中,除非具有非null
光标的子组件。如果Java平台实现和/或本地系统不支持更改鼠标光标形状,则该方法可能没有视觉效果。
- 参数:
-
cursor
-Cursor
类定义的常量之一;如果此参数为null
,则此组件将继承其父级的光标 - 自从:
- 1.1
- 参见:
-
getCursor
获取组件中设置的光标。如果组件没有设置光标,则返回其父级的光标。如果整个层次结构中没有设置光标,则返回Cursor.DEFAULT_CURSOR
。- 返回:
- 此组件的光标
- 自从:
- 1.1
- 参见:
-
isCursorSet
public boolean isCursorSet()返回此组件是否已明确设置光标。如果此方法返回false
,则此组件正在从祖先继承其光标。- 返回:
-
如果此组件已明确设置光标,则返回
true
;否则返回false
。 - 自从:
- 1.4
-
paint
绘制此组件。当需要绘制组件的内容时,例如当组件首次显示或损坏并需要修复时,将调用此方法。
Graphics
参数中的剪辑矩形设置为需要绘制的区域。覆盖此方法的Component
子类无需调用super.paint(g)
。出于性能原因,当首次显示时,宽度或高度为零的
Component
不被视为需要绘制,并且在需要修复时也不被视为需要修复。注意:有关AWT和Swing使用的绘制机制的更多信息,包括如何编写最有效的绘制代码的信息,请参见AWT和Swing中的绘制。
- 参数:
-
g
- 用于绘制的图形上下文 - 自从:
- 1.0
- 参见:
-
update
更新此组件。如果此组件不是轻量级组件,则AWT会在调用
repaint
时调用update
方法。可以假定背景未清除。Component
的update
方法调用此组件的paint
方法以重新绘制此组件。通常情况下,覆盖此方法的Component
子类需要在对repaint
的调用中执行其他工作。覆盖此方法的Component
子类应该从其update
方法中直接调用super.update(g)
,或直接调用paint(g)
。图形上下文的原点,即其(
0
,0
)坐标点,是此组件的左上角。图形上下文的剪辑区域是此组件的边界矩形。注意:有关AWT和Swing使用的绘制机制的更多信息,包括如何编写最有效的绘制代码的信息,请参见AWT和Swing中的绘制。
- 参数:
-
g
- 用于更新的指定上下文 - 自从:
- 1.0
- 参见:
-
paintAll
绘制此组件及其所有子组件。图形上下文的原点,即其(
0
,0
)坐标点,是此组件的左上角。图形上下文的剪辑区域是此组件的边界矩形。- 参数:
-
g
- 用于绘制的图形上下文 - 自从:
- 1.0
- 参见:
-
repaint
public void repaint()重绘此组件。如果此组件是轻量级组件,则此方法会尽快调用此组件的
paint
方法。否则,此方法会尽快调用此组件的update
方法。注意:有关AWT和Swing使用的绘制机制的更多信息,包括如何编写最有效的绘制代码的信息,请参见AWT和Swing中的绘制。
- 自从:
- 1.0
- 参见:
-
repaint
public void repaint(long tm) - 参数:
-
tm
- 在更新之前的最大时间(以毫秒为单位) - 自从:
- 1.0
- 参见:
-
repaint
public void repaint(int x, int y, int width, int height) 重绘此组件的指定矩形。如果此组件是轻量级组件,则此方法会尽快调用此组件的
paint
方法。否则,此方法会尽快调用此组件的update
方法。注意:有关AWT和Swing使用的绘制机制的更多信息,包括如何编写最有效的绘制代码的信息,请参见AWT和Swing中的绘制。
- 参数:
-
x
- x坐标 -
y
- y坐标 -
width
- 宽度 -
height
- 高度 - 自从:
- 1.0
- 参见:
-
repaint
public void repaint(long tm, int x, int y, int width, int height) 在tm
毫秒内重绘此组件的指定矩形。如果此组件是轻量级组件,则此方法会调用此组件的
paint
方法。否则,此方法会调用此组件的update
方法。注意:有关AWT和Swing使用的绘制机制的更多信息,包括如何编写最有效的绘制代码的信息,请参见AWT和Swing中的绘制。
- 参数:
-
tm
- 在更新之前的最大时间(以毫秒为单位) -
x
- x坐标 -
y
- y坐标 -
width
- 宽度 -
height
- 高度 - 自从:
- 1.0
- 参见:
-
print
打印此组件。应用程序应重写此方法,以便对必须在打印之前进行特殊处理或应以不同于绘制时的方式打印的组件进行处理。此方法的默认实现调用
paint
方法。图形上下文的原点,即其(
0
,0
)坐标点,是此组件的左上角。图形上下文的剪切区域是此组件的边界矩形。- 参数:
-
g
- 用于打印的图形上下文 - 自从:
- 1.0
- 参见:
-
printAll
打印此组件及其所有子组件。图形上下文的原点,即其(
0
,0
)坐标点,是此组件的左上角。图形上下文的剪切区域是此组件的边界矩形。- 参数:
-
g
- 用于打印的图形上下文 - 自从:
- 1.0
- 参见:
-
imageUpdate
当图像发生变化时重新绘制组件。当有关图像的更多信息(例如使用异步例程(如Graphics
的drawImage
方法)之前请求的图像)变得可用时,将调用ImageObserver
的imageUpdate
方法。有关此方法及其参数的更多信息,请参见imageUpdate
的定义。Component
的imageUpdate
方法在图像的位逐渐可用时在组件上绘制图像。如果系统属性
awt.image.incrementaldraw
丢失或具有值true
,则图像将逐步绘制。如果系统属性具有任何其他值,则图像直到完全加载后才绘制。此外,如果增量绘制生效,则系统属性
awt.image.redrawrate
的值将被解释为一个整数,以提供最大重绘速率,以毫秒为单位。如果系统属性丢失或无法解释为整数,则重绘速率为每100毫秒一次。x
、y
、width
和height
参数的解释取决于infoflags
参数的值。- 指定者:
-
imageUpdate
在接口ImageObserver
- 参数:
-
img
- 正在观察的图像 -
infoflags
- 有关更多信息,请参见imageUpdate
-
x
- x坐标 -
y
- y坐标 -
w
- 宽度 -
h
- 高度 - 返回:
-
如果infoflags指示图像已完全加载,则为
false
;否则为true
。 - 自从:
- 1.0
- 参见:
-
createImage
从指定的图像生成图像生产者。- 参数:
-
producer
- 图像生产者 - 返回:
- 生成的图像
- 自从:
- 1.0
-
createImage
创建用于双缓冲的离屏可绘制图像。- 参数:
-
width
- 指定的宽度 -
height
- 指定的高度 - 返回:
-
一个离屏可绘制图像,可用于双缓冲。如果组件不可显示或
GraphicsEnvironment.isHeadless()
返回true
,则返回null
值。 - 自从:
- 1.0
- 参见:
-
createVolatileImage
创建用于双缓冲的易失性离屏可绘制图像。- 参数:
-
width
- 指定的宽度 -
height
- 指定的高度 - 返回:
-
一个离屏可绘制图像,可用于双缓冲。如果组件不可显示或
GraphicsEnvironment.isHeadless()
返回true
,则返回null
值。 - 自从:
- 1.4
- 参见:
-
createVolatileImage
public VolatileImage createVolatileImage(int width, int height, ImageCapabilities caps) throws AWTException 创建具有给定功能的易失性离屏可绘制图像。由于操作系统问题,此图像的内容可能随时丢失,因此必须通过VolatileImage
接口来管理图像。- 参数:
-
width
- 指定的宽度 -
height
- 指定的高度 -
caps
- 图像功能 - 返回:
-
一个VolatileImage对象,可用于管理表面内容丢失和功能。如果组件不可显示或
GraphicsEnvironment.isHeadless()
返回true
,则返回null
值。 - 抛出:
-
AWTException
- 如果无法创建具有指定功能的图像 - 自从:
- 1.4
- 参见:
-
prepareImage
为在此组件上呈现的图像准备图像。图像数据在另一个线程中异步下载,并生成图像的适当屏幕表示。- 参数:
-
image
- 要准备屏幕表示的Image
-
observer
- 在准备图像时将被通知的ImageObserver
对象 - 返回:
-
如果图像已完全准备,则为
true
;否则为false
- 自从:
- 1.0
-
prepareImage
为在指定宽度和高度上的此组件上呈现的图像准备图像。图像数据在另一个线程中异步下载,并生成适当缩放的图像的屏幕表示。
- 参数:
-
image
- 要准备屏幕表示的Image
实例 -
width
- 所需屏幕表示的宽度 -
height
- 所需屏幕表示的高度 -
observer
- 在准备图像时将被通知的ImageObserver
对象 - 返回:
-
如果图像已完全准备,则为
true
;否则为false
- 自从:
- 1.0
- 参见:
-
checkImage
返回指定图像的屏幕表示构造状态。此方法不会导致图像开始加载。应用程序必须使用
prepareImage
方法来强制加载图像。有关此方法返回的标志的信息可在
ImageObserver
接口的讨论中找到。- 参数:
-
image
- 正在检查状态的Image
对象 -
observer
- 在准备图像时将被通知的ImageObserver
对象 - 返回:
-
指示有关图像当前可用信息的
ImageObserver
标志的按位包含OR - 自从:
- 1.0
- 参见:
-
checkImage
返回指定图像的屏幕表示构造状态。此方法不会导致图像开始加载。应用程序必须使用
prepareImage
方法来强制加载图像。Component
的checkImage
方法调用其对等体的checkImage
方法以计算标志。如果此组件尚未具有对等体,则将调用组件的工具包的checkImage
方法。有关此方法返回的标志的信息可在
ImageObserver
接口的讨论中找到。- 参数:
-
image
- 要检查状态的Image
对象 -
width
- 要检查状态的缩放版本的宽度 -
height
- 要检查状态的缩放版本的高度 -
observer
- 要在准备图像时通知的ImageObserver
对象 - 返回:
-
当前可用有关图像信息的
ImageObserver
标志的按位包含OR - 自版本:
- 1.0
- 另请参阅:
-
setIgnoreRepaint
public void setIgnoreRepaint(boolean ignoreRepaint) 设置是否应忽略来自操作系统接收的绘制消息。这不会影响由AWT在软件中生成的绘制事件,除非它们是对操作系统级绘制消息的直接响应。例如,在全屏模式下运行并且需要更好的性能,或者如果使用页面翻转作为缓冲策略时,这将非常有用。
- 参数:
-
ignoreRepaint
- 如果应忽略来自操作系统的绘制消息,则为true
;否则为false
- 自版本:
- 1.4
- 另请参阅:
-
getIgnoreRepaint
public boolean getIgnoreRepaint()返回是否应忽略来自操作系统接收的绘制消息。- 返回:
- 是否应忽略来自操作系统接收的绘制消息
- 自版本:
- 1.4
- 另请参阅:
-
contains
public boolean contains(int x, int y) 检查此组件是否包含指定点,其中x
和y
被定义为相对于此组件的坐标系。- 参数:
-
x
- 点的x坐标 -
y
- 点的y坐标 - 返回:
-
如果点在组件内部,则为
true
;否则为false
- 自版本:
- 1.1
- 另请参阅:
-
inside
Deprecated.As of JDK version 1.1, replaced by contains(int, int).检查点是否在此组件内部。- 参数:
-
x
- 点的x坐标 -
y
- 点的y坐标 - 返回:
-
如果点在组件内部,则为
true
;否则为false
-
contains
检查此组件是否包含指定点,其中点的x和y坐标被定义为相对于此组件的坐标系。- 参数:
-
p
- 点 - 返回:
-
如果点在组件内部,则为
true
;否则为false
- 抛出:
-
NullPointerException
- 如果p
为null
- 自版本:
- 1.1
- 另请参阅:
-
getComponentAt
确定此组件或其直接子组件是否包含(x,y)位置,并在是这样的情况下返回包含的组件。此方法仅查看一级深度。如果点(x,y)在一个具有子组件的子组件内部,则不会继续查找子组件树。Component
的locate
方法只是在其边界框内部时返回组件本身,否则返回null
。- 参数:
-
x
- x坐标 -
y
- y坐标 - 返回:
-
包含(x,y)位置的组件或子组件;如果位置在此组件外部,则为
null
- 自版本:
- 1.0
- 另请参阅:
-
locate
Deprecated.As of JDK version 1.1, replaced by getComponentAt(int, int).返回占据指定位置的组件(此组件、直接子组件或如果前两者都不占据位置则为null)。- 参数:
-
x
- 要搜索组件的x坐标 -
y
- 要搜索组件的y坐标 - 返回:
-
指定位置的组件或
null
-
getComponentAt
返回包含指定点的组件或子组件。- 参数:
-
p
- 点 - 返回:
-
指定位置的组件或
null
- 自版本:
- 1.1
- 另请参阅:
-
deliverEvent
Deprecated.As of JDK version 1.1, replaced bydispatchEvent(AWTEvent e)
.- 参数:
-
e
- 要传递的事件
-
dispatchEvent
将事件分派到此组件或其子组件之一。在返回1.1样式事件之前调用Component
上已启用的processEvent
。- 参数:
-
e
- 事件
-
postEvent
Deprecated.As of JDK version 1.1, replaced by dispatchEvent(AWTEvent).从接口复制的描述:MenuContainer
向侦听器发布事件。- 指定者:
-
postEvent
在接口MenuContainer
中 - 参数:
-
e
- 要分派的事件 - 返回:
- 发布事件的结果
-
addComponentListener
- 参数:
-
l
- 组件侦听器 - 自版本:
- 1.1
- 另请参阅:
-
removeComponentListener
删除指定的组件侦听器,使其不再从此组件接收组件事件。如果先前未将参数指定的侦听器添加到此组件,则此方法不执行任何功能,也不会抛出异常。如果侦听器l
为null
,则不会抛出异常,也不会执行任何操作。有关AWT线程模型的详细信息,请参阅AWT线程问题。
- 参数:
-
l
- 组件侦听器 - 自版本:
- 1.1
- 另请参阅:
-
getComponentListeners
返回在此组件上注册的所有组件侦听器的数组。- 返回:
-
此组件的所有
ComponentListener
或如果当前未注册任何组件侦听器,则返回空数组 - 自版本:
- 1.4
- 另请参阅:
-
addFocusListener
- 参数:
-
l
- 焦点监听器 - 自版本:
- 1.1
- 参见:
-
removeFocusListener
移除指定的焦点监听器,使其不再从此组件接收焦点事件。如果参数指定的监听器先前未添加到此组件,则此方法不执行任何功能,也不会抛出异常。如果监听器l
为null
,则不会抛出异常,也不会执行任何操作。有关AWT线程模型的详细信息,请参阅AWT线程问题。
- 参数:
-
l
- 焦点监听器 - 自版本:
- 1.1
- 参见:
-
getFocusListeners
返回在此组件上注册的所有焦点监听器的数组。- 返回:
-
所有此组件的
FocusListener
或如果当前未注册组件监听器则返回空数组 - 自版本:
- 1.4
- 参见:
-
addHierarchyListener
添加指定的层次结构监听器,以便在此组件所属的层次结构发生更改时从此组件接收层次结构更改事件。如果监听器l
为null
,则不会抛出异常,也不会执行任何操作。有关AWT线程模型的详细信息,请参阅AWT线程问题。
- 参数:
-
l
- 层次结构监听器 - 自版本:
- 1.3
- 参见:
-
removeHierarchyListener
移除指定的层次结构监听器,使其不再从此组件接收层次结构更改事件。如果参数指定的监听器先前未添加到此组件,则此方法不执行任何功能,也不会抛出异常。如果监听器l
为null
,则不会抛出异常,也不会执行任何操作。有关AWT线程模型的详细信息,请参阅AWT线程问题。
- 参数:
-
l
- 层次结构监听器 - 自版本:
- 1.3
- 参见:
-
getHierarchyListeners
返回在此组件上注册的所有层次结构监听器的数组。- 返回:
-
所有此组件的
HierarchyListener
或如果当前未注册层次结构监听器则返回空数组 - 自版本:
- 1.4
- 参见:
-
addHierarchyBoundsListener
添加指定的层次结构边界监听器,以便在此组件所属的层次结构更改时从此组件接收层次结构边界事件。如果监听器l
为null
,则不会抛出异常,也不会执行任何操作。有关AWT线程模型的详细信息,请参阅AWT线程问题。
- 参数:
-
l
- 层次结构边界监听器 - 自版本:
- 1.3
- 参见:
-
removeHierarchyBoundsListener
移除指定的层次结构边界监听器,使其不再从此组件接收层次结构边界事件。如果参数指定的监听器先前未添加到此组件,则此方法不执行任何功能,也不会抛出异常。如果监听器l
为null
,则不会抛出异常,也不会执行任何操作。有关AWT线程模型的详细信息,请参阅AWT线程问题。
- 参数:
-
l
- 层次结构边界监听器 - 自版本:
- 1.3
- 参见:
-
getHierarchyBoundsListeners
返回在此组件上注册的所有层次结构边界监听器的数组。- 返回:
-
所有此组件的
HierarchyBoundsListener
或如果当前未注册层次结构边界监听器则返回空数组 - 自版本:
- 1.4
- 参见:
-
addKeyListener
- 参数:
-
l
- 键盘监听器。 - 自版本:
- 1.1
- 参见:
-
removeKeyListener
移除指定的键盘监听器,使其不再从此组件接收键盘事件。如果参数指定的监听器先前未添加到此组件,则此方法不执行任何功能,也不会抛出异常。如果监听器l
为null
,则不会抛出异常,也不会执行任何操作。有关AWT线程模型的详细信息,请参阅AWT线程问题。
- 参数:
-
l
- 键盘监听器 - 自版本:
- 1.1
- 参见:
-
getKeyListeners
返回在此组件上注册的所有键盘监听器的数组。- 返回:
-
所有此组件的
KeyListener
或如果当前未注册键盘监听器则返回空数组 - 自版本:
- 1.4
- 参见:
-
addMouseListener
- 参数:
-
l
- 鼠标监听器 - 自 JDK 版本:
- 1.1
- 参见:
-
removeMouseListener
从此组件中移除指定的鼠标监听器,使其不再接收来自该组件的鼠标事件。如果参数指定的监听器先前未添加到此组件,则此方法不执行任何功能,也不会抛出异常。如果监听器l
为null
,则不会抛出异常,也不会执行任何操作。有关 AWT 线程模型的详细信息,请参阅 AWT 线程问题。
- 参数:
-
l
- 鼠标监听器 - 自 JDK 版本:
- 1.1
- 参见:
-
getMouseListeners
返回在此组件上注册的所有鼠标监听器的数组。- 返回:
-
所有此组件的
MouseListener
,如果当前未注册鼠标监听器,则返回空数组 - 自 JDK 版本:
- 1.4
- 参见:
-
addMouseMotionListener
- 参数:
-
l
- 鼠标移动监听器 - 自 JDK 版本:
- 1.1
- 参见:
-
removeMouseMotionListener
从此组件中移除指定的鼠标移动监听器,使其不再接收来自该组件的鼠标移动事件。如果参数指定的监听器先前未添加到此组件,则此方法不执行任何功能,也不会抛出异常。如果监听器l
为null
,则不会抛出异常,也不会执行任何操作。有关 AWT 线程模型的详细信息,请参阅 AWT 线程问题。
- 参数:
-
l
- 鼠标移动监听器 - 自 JDK 版本:
- 1.1
- 参见:
-
getMouseMotionListeners
返回在此组件上注册的所有鼠标移动监听器的数组。- 返回:
-
所有此组件的
MouseMotionListener
,如果当前未注册鼠标移动监听器,则返回空数组 - 自 JDK 版本:
- 1.4
- 参见:
-
addMouseWheelListener
添加指定的鼠标滚轮监听器以接收来自此组件的鼠标滚轮事件。容器还会从子组件接收鼠标滚轮事件。有关鼠标滚轮事件如何分发的信息,请参阅
MouseWheelEvent
的类描述。如果 l 为
null
,则不会抛出异常,也不会执行任何操作。有关 AWT 线程模型的详细信息,请参阅 AWT 线程问题。
- 参数:
-
l
- 鼠标滚轮监听器 - 自 JDK 版本:
- 1.4
- 参见:
-
removeMouseWheelListener
从此组件中移除指定的鼠标滚轮监听器,使其不再接收来自该组件的鼠标滚轮事件。如果参数指定的监听器先前未添加到此组件,则此方法不执行任何功能,也不会抛出异常。如果 l 为 null,则不会抛出异常,也不会执行任何操作。有关 AWT 线程模型的详细信息,请参阅 AWT 线程问题。
- 参数:
-
l
- 鼠标滚轮监听器 - 自 JDK 版本:
- 1.4
- 参见:
-
getMouseWheelListeners
返回在此组件上注册的所有鼠标滚轮监听器的数组。- 返回:
-
所有此组件的
MouseWheelListener
,如果当前未注册鼠标滚轮监听器,则返回空数组 - 自 JDK 版本:
- 1.4
- 参见:
-
addInputMethodListener
添加指定的输入法监听器以接收来自此组件的输入法事件。只有当组件还重写getInputMethodRequests
以返回一个InputMethodRequests
实例时,组件才会从输入法接收输入法事件。如果监听器l
为null
,则不会抛出异常,也不会执行任何操作。有关 AWT 线程模型的详细信息,请参阅 AWT 线程问题。
- 参数:
-
l
- 输入法监听器 - 自 JDK 版本:
- 1.2
- 参见:
-
removeInputMethodListener
从此组件中移除指定的输入法监听器,使其不再接收来自该组件的输入法事件。如果参数指定的监听器先前未添加到此组件,则此方法不执行任何功能,也不会抛出异常。如果监听器l
为null
,则不会抛出异常,也不会执行任何操作。有关 AWT 线程模型的详细信息,请参阅 AWT 线程问题。
- 参数:
-
l
- 输入法监听器 - 自 JDK 版本:
- 1.2
- 参见:
-
getInputMethodListeners
返回在此组件上注册的所有输入法监听器的数组。- 返回值:
-
返回此组件的所有
InputMethodListener
,如果当前没有注册任何输入法监听器,则返回空数组 - 自版本:
- 1.4
- 另请参阅:
-
getListeners
返回当前注册为此Component
的所有对象的数组,这些对象是FooListener
。FooListener
是使用addFooListener
方法注册的。您可以使用类文字指定
listenerType
参数,例如FooListener.class
。例如,您可以使用以下代码查询Component c
的鼠标监听器:MouseListener[] mls = (MouseListener[])(c.getListeners(MouseListener.class));
如果不存在这样的监听器,则此方法返回一个空数组。- 类型参数:
-
T
- 监听器的类型 - 参数:
-
listenerType
- 请求的监听器类型;此参数应指定从java.util.EventListener
继承的接口 - 返回值:
-
返回此组件上注册为
FooListener
的所有对象的数组,如果没有添加此类监听器,则返回空数组 - 抛出:
-
ClassCastException
- 如果listenerType
未指定实现java.util.EventListener
的类或接口 -
NullPointerException
- 如果listenerType
为null
- 自版本:
- 1.3
- 另请参阅:
-
getInputMethodRequests
获取支持此组件的输入法请求处理程序。支持现场文本输入的组件必须重写此方法以返回一个InputMethodRequests
实例。同时,它还必须处理输入法事件。- 返回值:
-
此组件的输入法请求处理程序,默认为
null
- 自版本:
- 1.2
- 另请参阅:
-
getInputContext
获取此组件用于处理在此组件中输入文本时与输入法通信的输入上下文。默认情况下,返回用于父组件的输入上下文。组件可以重写此方法以返回私有输入上下文。- 返回值:
-
此组件使用的输入上下文;如果无法确定上下文,则返回
null
- 自版本:
- 1.2
-
enableEvents
protected final void enableEvents(long eventsToEnable) 启用将由指定事件掩码参数定义的事件传递到此组件。当为该事件类型添加监听器时,事件类型会自动启用。
此方法只需要由
Component
的子类调用,这些子类希望将指定的事件类型传递给processEvent
,无论是否已注册监听器。- 参数:
-
eventsToEnable
- 定义事件类型的事件掩码 - 自版本:
- 1.1
- 另请参阅:
-
disableEvents
protected final void disableEvents(long eventsToDisable) 禁用将由指定事件掩码参数定义的事件传递到此组件。- 参数:
-
eventsToDisable
- 定义事件类型的事件掩码 - 自版本:
- 1.1
- 另请参阅:
-
coalesceEvents
可能将要发布的事件与现有事件合并。如果在队列中找到与要发布的事件具有相同ID的事件(这两个事件都必须将此组件作为其源),则EventQueue.postEvent
将调用此方法。此方法要么返回一个替换现有事件的合并事件(然后新事件被丢弃),要么返回null
以指示不进行合并(将第二个事件添加到队列的末尾)。可以修改并返回任一事件参数,因为另一个事件参数将被丢弃,除非返回null
。coalesceEvents
的此实现合并两种事件类型:鼠标移动(和拖动)事件,以及绘制(和更新)事件。对于鼠标移动事件,始终返回最后一个事件,导致中间移动被丢弃。对于绘制事件,新事件将合并到对等体中的复杂RepaintArea
中。始终返回新的AWTEvent
。- 参数:
-
existingEvent
- 已在EventQueue
上的事件 -
newEvent
- 要发布到EventQueue
的事件 - 返回值:
-
合并的事件,或
null
表示未进行合并
-
processEvent
处理在此组件上发生的事件。默认情况下,此方法调用给定事件类的适当process<event type>Event
方法。请注意,如果事件参数为
null
,则行为是未指定的,可能会导致异常。- 参数:
-
e
- 事件 - 自版本:
- 1.1
- 另请参阅:
-
processComponentEvent
通过将组件事件分派给任何已注册的ComponentListener
对象来处理在此组件上发生的组件事件。除非为此组件启用了组件事件,否则不会调用此方法。当发生以下情况之一时,将启用组件事件:
- 通过
addComponentListener
注册了一个ComponentListener
对象。 - 通过
enableEvents
启用了组件事件。
请注意,如果事件参数为
null
,则行为是未指定的,可能会导致异常。- 参数:
-
e
- 组件事件 - 自版本:
- 1.1
- 另请参阅:
- 通过
-
processFocusEvent
通过将焦点事件分派给任何已注册的FocusListener
对象来处理在此组件上发生的焦点事件。除非为此组件启用了焦点事件,否则不会调用此方法。当发生以下情况之一时,将启用焦点事件:
- 通过
addFocusListener
注册了一个FocusListener
对象。 - 通过
enableEvents
启用了焦点事件。
如果为
Component
启用了焦点事件,则当前的KeyboardFocusManager
确定是否应将焦点事件分派给已注册的FocusListener
对象。如果要分派事件,则KeyboardFocusManager
调用Component
的dispatchEvent
方法,这将导致调用Component
的processFocusEvent
方法。如果为
Component
启用了焦点事件,则使用FocusEvent
作为参数调用Component
的dispatchEvent
方法将导致调用Component
的processFocusEvent
方法,而不考虑当前的KeyboardFocusManager
。请注意,如果事件参数为
null
,则行为是未指定的,可能会导致异常。- 参数:
-
e
- 焦点事件 - 自1.1版本起:
- 1.1
- 参见:
- 通过
-
processKeyEvent
通过将键事件分派给任何已注册的KeyListener
对象来处理此组件上发生的键事件。除非为此组件启用了键事件,否则不会调用此方法。当发生以下情况之一时,键事件将被启用:
- 通过
addKeyListener
注册了一个KeyListener
对象。 - 通过
enableEvents
启用了键事件。
如果为
Component
启用了键事件,则当前的KeyboardFocusManager
将决定是否将键事件分派给已注册的KeyListener
对象。只要组件正在显示、聚焦且启用,并且已在其上启用了键事件,DefaultKeyboardFocusManager
将不会将键事件分派给非焦点所有者或未显示的Component
。从J2SE 1.4开始,
KeyEvent
将被重定向到焦点所有者。有关更多信息,请参阅焦点规范。将
KeyEvent
作为参数调用Component
的dispatchEvent
方法将导致调用Component
的processKeyEvent
方法,而不管当前的KeyboardFocusManager
如何,只要组件正在显示、聚焦且启用,并且已在其上启用了键事件。如果事件参数为
null
,则行为是未指定的,可能会导致异常。- 参数:
-
e
- 键事件 - 自1.1版本起:
- 1.1
- 参见:
- 通过
-
processMouseEvent
通过将鼠标事件分派给任何已注册的MouseListener
对象来处理此组件上发生的鼠标事件。除非为此组件启用了鼠标事件,否则不会调用此方法。当发生以下情况之一时,鼠标事件将被启用:
- 通过
addMouseListener
注册了一个MouseListener
对象。 - 通过
enableEvents
启用了鼠标事件。
请注意,如果事件参数为
null
,则行为是未指定的,可能会导致异常。- 参数:
-
e
- 鼠标事件 - 自1.1版本起:
- 1.1
- 参见:
- 通过
-
processMouseMotionEvent
通过将鼠标移动事件分派给任何已注册的MouseMotionListener
对象来处理此组件上发生的鼠标移动事件。除非为此组件启用了鼠标移动事件,否则不会调用此方法。当发生以下情况之一时,鼠标移动事件将被启用:
- 通过
addMouseMotionListener
注册了一个MouseMotionListener
对象。 - 通过
enableEvents
启用了鼠标移动事件。
请注意,如果事件参数为
null
,则行为是未指定的,可能会导致异常。- 参数:
-
e
- 鼠标移动事件 - 自1.1版本起:
- 1.1
- 参见:
- 通过
-
processMouseWheelEvent
通过将鼠标滚轮事件分派给任何已注册的MouseWheelListener
对象来处理此组件上发生的鼠标滚轮事件。除非为此组件启用了鼠标滚轮事件,否则不会调用此方法。当发生以下情况之一时,鼠标滚轮事件将被启用:
- 通过
addMouseWheelListener
注册了一个MouseWheelListener
对象。 - 通过
enableEvents
启用了鼠标滚轮事件。
有关如何分派鼠标滚轮事件的信息,请参阅
MouseWheelEvent
的类描述。请注意,如果事件参数为
null
,则行为是未指定的,可能会导致异常。- 参数:
-
e
- 鼠标滚轮事件 - 自1.4版本起:
- 1.4
- 参见:
- 通过
-
processInputMethodEvent
通过将输入法事件分派给任何已注册的InputMethodListener
对象来处理此组件上发生的输入法事件。除非为此组件启用了输入法事件,否则不会调用此方法。当发生以下情况之一时,输入法事件将被启用:
- 通过
addInputMethodListener
注册了一个InputMethodListener
对象。 - 通过
enableEvents
启用了输入法事件。
请注意,如果事件参数为
null
,则行为是未指定的,可能会导致异常。- 参数:
-
e
- 输入法事件 - 自1.2版本起:
- 1.2
- 参见:
- 通过
-
processHierarchyEvent
通过将层次结构事件分派给任何已注册的HierarchyListener
对象来处理此组件上发生的层次结构事件。除非为此组件启用了层次结构事件,否则不会调用此方法。当发生以下情况之一时,层次结构事件将被启用:
- 通过
addHierarchyListener
注册了一个HierarchyListener
对象。 - 通过
enableEvents
启用了层次结构事件。
请注意,如果事件参数为
null
,则行为是未指定的,可能会导致异常。- 参数:
-
e
- 层次结构事件 - 自1.3版本起:
- 1.3
- 参见:
- 通过
-
processHierarchyBoundsEvent
通过将层次结构边界事件分派给任何已注册的HierarchyBoundsListener
对象来处理此组件上发生的层次结构边界事件。除非为此组件启用了层次结构边界事件,否则不会调用此方法。当发生以下情况之一时,层次结构边界事件将被启用:
- 通过
addHierarchyBoundsListener
注册了一个HierarchyBoundsListener
对象。 - 通过
enableEvents
启用了层次结构边界事件。
请注意,如果事件参数为
null
,则行为是未指定的,可能会导致异常。- 参数:
-
e
- 层次结构事件 - 自1.3版本起:
- 1.3
- 参见:
- 通过
-
handleEvent
Deprecated.As of JDK version 1.1 replaced by processEvent(AWTEvent).- 参数:
-
evt
- 要处理的事件 - 返回:
-
如果事件已处理,则返回
true
,否则返回false
-
mouseDown
Deprecated.As of JDK version 1.1, replaced by processMouseEvent(MouseEvent).- 参数:
-
evt
- 要处理的事件 -
x
- x坐标 -
y
- y坐标 - 返回:
-
false
-
mouseDrag
Deprecated.As of JDK version 1.1, replaced by processMouseMotionEvent(MouseEvent).- 参数:
-
evt
- 要处理的事件 -
x
- x坐标 -
y
- y坐标 - 返回:
-
false
-
mouseUp
Deprecated.As of JDK version 1.1, replaced by processMouseEvent(MouseEvent).- 参数:
-
evt
- 要处理的事件 -
x
- x坐标 -
y
- y坐标 - 返回:
-
false
-
mouseMove
Deprecated.As of JDK version 1.1, replaced by processMouseMotionEvent(MouseEvent).- 参数:
-
evt
- 要处理的事件 -
x
- x坐标 -
y
- y坐标 - 返回:
-
false
-
mouseEnter
Deprecated.As of JDK version 1.1, replaced by processMouseEvent(MouseEvent).- 参数:
-
evt
- 要处理的事件 -
x
- x坐标 -
y
- y坐标 - 返回:
-
false
-
mouseExit
Deprecated.As of JDK version 1.1, replaced by processMouseEvent(MouseEvent).- 参数:
-
evt
- 要处理的事件 -
x
- x坐标 -
y
- y坐标 - 返回:
-
false
-
keyDown
Deprecated.As of JDK version 1.1, replaced by processKeyEvent(KeyEvent).- 参数:
-
evt
- 要处理的事件 -
key
- 按下的键 - 返回:
-
false
-
keyUp
Deprecated.As of JDK version 1.1, replaced by processKeyEvent(KeyEvent).- 参数:
-
evt
- 要处理的事件 -
key
- 按下的键 - 返回:
-
false
-
action
Deprecated.As of JDK version 1.1, should register this component as ActionListener on component which fires action events.- 参数:
-
evt
- 要处理的事件 -
what
- 操作的对象 - 返回:
-
false
-
addNotify
public void addNotify()使此Component
通过连接到本机屏幕资源而可显示。此方法由工具包内部调用,不应由程序直接调用。此方法更改与布局相关的信息,因此使组件层次结构无效。
- 自:
- 1.0
- 另请参阅:
-
removeNotify
public void removeNotify()使此Component
通过销毁其本机屏幕资源而不可显示。此方法由工具包内部调用,不应由程序直接调用。覆盖此方法的代码应在覆盖方法的第一行调用
super.removeNotify
。- 自:
- 1.0
- 另请参阅:
-
gotFocus
Deprecated.As of JDK version 1.1, replaced by processFocusEvent(FocusEvent).- 参数:
-
evt
- 要处理的事件 -
what
- 焦点对象 - 返回:
-
false
-
lostFocus
Deprecated.As of JDK version 1.1, replaced by processFocusEvent(FocusEvent).- 参数:
-
evt
- 要处理的事件 -
what
- 焦点对象 - 返回:
-
false
-
isFocusTraversable
Deprecated.As of 1.4, replaced byisFocusable()
.返回此Component
是否可以成为焦点所有者。- 返回:
-
如果此
Component
可获得焦点,则为true
; 否则为false
- 自:
- 1.1
- 另请参阅:
-
isFocusable
public boolean isFocusable()返回此组件是否可以获得焦点。- 返回:
-
如果此组件可以获得焦点,则为
true
; 否则为false
。 - 自:
- 1.4
- 另请参阅:
-
setFocusable
public void setFocusable(boolean focusable) 将此组件的可获得焦点状态设置为指定值。此值覆盖组件的默认可获得焦点性。- 参数:
-
focusable
- 指示此组件是否可获得焦点 - 自:
- 1.4
- 另请参阅:
-
setFocusTraversalKeys
为此组件的给定遍历操作设置焦点遍历键。组件的焦点遍历键的默认值取决于实现。Sun建议特定本机平台的所有实现使用相同的默认值。下面列出了Windows和Unix的建议。这些建议在Sun AWT实现中使用。
组件焦点遍历键的推荐默认值 标识符 含义 默认值 KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS 正常前向键盘遍历 按下TAB,按下CTRL-TAB KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS 正常反向键盘遍历 按下SHIFT-TAB,按下CTRL-SHIFT-TAB KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 向上一个焦点遍历周期 无 使用AWTKeyStroke API,客户端代码可以指定焦点遍历操作将在两个特定的KeyEvents中的哪一个上发生,即KEY_PRESSED或KEY_RELEASED。但是,无论指定哪个KeyEvent,与焦点遍历键相关的所有KeyEvents,包括关联的KEY_TYPED事件,都将被消耗,并且不会被分派到任何组件。将KEY_TYPED事件映射到焦点遍历操作,或将同一事件映射到此组件的多个默认焦点遍历操作,都是运行时错误。
如果为Set指定了null值,则此组件继承自其父级的Set。如果此组件的所有祖先都为Set指定了null值,则使用当前KeyboardFocusManager的默认Set。
如果
keystrokes
中的任何Object
不是AWTKeyStroke
,则此方法可能会抛出ClassCastException
。- 参数:
-
id
- KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS或KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS之一 -
keystrokes
- 指定操作的AWTKeyStroke集合 - 抛出:
-
IllegalArgumentException
- 如果id不是KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS或KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS之一,或者keystrokes包含null,或者任何keystroke表示KEY_TYPED事件,或者任何keystroke已经映射到此组件的另一个焦点遍历操作 - 自:
- 1.4
- 另请参阅:
-
getFocusTraversalKeys
返回此组件的给定遍历操作的焦点遍历键集合。(有关每个键的完整描述,请参阅setFocusTraversalKeys
。)如果未为此组件明确定义遍历键集合,则返回此组件的父级的集合。如果未为此组件的任何祖先明确定义集合,则返回当前KeyboardFocusManager的默认集合。
- 参数:
-
id
- KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS或KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS之一 - 返回:
- 指定操作的AWTKeyStrokes集合。该集合是不可修改的,可能为空。不会返回null。
- 抛出:
-
IllegalArgumentException
- 如果id不是KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS或KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS之一 - 自:
- 1.4
- 另请参阅:
-
areFocusTraversalKeysSet
public boolean areFocusTraversalKeysSet(int id) 返回给定焦点遍历操作的焦点遍历键集合是否已为此组件明确定义。如果此方法返回false
,则此组件正在从祖先或当前KeyboardFocusManager继承集合。- 参数:
-
id
- KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS 或 KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS之一 - 返回:
-
如果为给定焦点遍历操作的焦点遍历键集合已经为此组件明确定义,则返回
true
; 否则返回false
。 - 抛出:
-
IllegalArgumentException
- 如果id不是KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS 或 KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS之一 - 自从:
- 1.4
-
setFocusTraversalKeysEnabled
public void setFocusTraversalKeysEnabled(boolean focusTraversalKeysEnabled) 设置此组件是否启用焦点遍历键。对于禁用焦点遍历键的组件,将接收焦点遍历键的键事件。对于启用焦点遍历键的组件,将不会看到这些事件;相反,这些事件将自动转换为遍历操作。- 参数:
-
focusTraversalKeysEnabled
- 是否为此组件启用焦点遍历键 - 自从:
- 1.4
- 参见:
-
getFocusTraversalKeysEnabled
public boolean getFocusTraversalKeysEnabled()返回此组件是否启用焦点遍历键。对于禁用焦点遍历键的组件,将接收焦点遍历键的键事件。对于启用焦点遍历键的组件,将不会看到这些事件;相反,这些事件将自动转换为遍历操作。- 返回:
- 此组件是否启用焦点遍历键
- 自从:
- 1.4
- 参见:
-
requestFocus
public void requestFocus()请求此组件获取输入焦点,并使此组件的顶层祖先成为焦点窗口。此组件必须是可显示的、可聚焦的、可见的,并且其所有祖先(顶层窗口除外)必须可见,才能授予请求。将尽一切努力来尊重请求;但在某些情况下可能无法实现。开发人员绝不能假设此组件是焦点所有者,直到此组件接收到FOCUS_GAINED事件。如果由于此组件的顶层窗口无法成为焦点窗口而拒绝此请求,则该请求将被记住,并在稍后由用户将窗口聚焦时授予。此方法不能用于将焦点所有者设置为没有任何组件。请改用
KeyboardFocusManager.clearGlobalFocusOwner()
。由于此方法的焦点行为依赖于平台,强烈建议开发人员尽可能使用
requestFocusInWindow
。注意:并非所有焦点转移都是通过调用此方法实现的。因此,组件可能会在未调用此方法或
Component
的任何其他requestFocus
方法的情况下接收焦点。- 自从:
- 1.0
- 参见:
-
requestFocus
通过cause
的原因请求此组件获取输入焦点,并使此组件的顶层祖先成为焦点窗口。此组件必须是可显示的、可聚焦的、可见的,并且其所有祖先(顶层窗口除外)必须可见,才能授予请求。将尽一切努力来尊重请求;但在某些情况下可能无法实现。开发人员绝不能假设此组件是焦点所有者,直到此组件接收到FOCUS_GAINED事件。焦点请求效果还可能取决于提供的原因值。如果此请求成功,生成的
FocusEvent
将接收到作为方法参数指定的原因值。如果由于此组件的顶层窗口无法成为焦点窗口而拒绝此请求,则该请求将被记住,并在稍后由用户将窗口聚焦时授予。此方法不能用于将焦点所有者设置为没有任何组件。请改用
KeyboardFocusManager.clearGlobalFocusOwner()
。由于此方法的焦点行为依赖于平台,强烈建议开发人员尽可能使用
requestFocusInWindow(FocusEvent.Cause)
。注意:并非所有焦点转移都是通过调用此方法实现的。因此,组件可能会在未调用此方法或
Component
的任何其他requestFocus
方法的情况下接收焦点。- 参数:
-
cause
- 请求焦点的原因 - 自从:
- 9
- 参见:
-
requestFocus
protected boolean requestFocus(boolean temporary) 请求此Component
获取输入焦点,并使此Component
的顶层祖先成为焦点Window
。此组件必须是可显示的、可聚焦的、可见的,并且其所有祖先(顶层窗口除外)必须可见,才能授予请求。将尽一切努力来尊重请求;但在某些情况下可能无法实现。开发人员绝不能假设此组件是焦点所有者,直到此组件接收到FOCUS_GAINED事件。如果由于此组件的顶层窗口无法成为焦点窗口而拒绝此请求,则该请求将被记住,并在稍后由用户将窗口聚焦时授予。此方法返回一个布尔值。如果返回
false
,则请求肯定会失败。如果返回true
,则请求将成功除非被否决,或在本地窗口系统授予请求之前发生特殊事件,例如组件对等体的销毁。再次强调,尽管返回值为true
表示请求很可能成功,但开发人员绝不能假设此组件是焦点所有者,直到此组件接收到FOCUS_GAINED事件。此方法不能用于将焦点所有者设置为没有任何组件。请改用
KeyboardFocusManager.clearGlobalFocusOwner
。由于此方法的焦点行为依赖于平台,强烈建议开发人员尽可能使用
requestFocusInWindow
。将尽一切努力确保作为此请求结果生成的
FocusEvent
具有指定的临时值。但是,由于在所有本地窗口系统上指定任意临时状态可能无法实现,因此此方法的正确行为仅对轻量级Component
可保证。此方法不适用于一般用途,而是作为轻量级组件库(如Swing)的钩子存在。注意:并非所有焦点转移都是通过调用此方法实现的。因此,组件可能会在未调用此方法或
Component
的任何其他requestFocus
方法的情况下接收焦点。- 参数:
-
temporary
- 如果焦点更改是临时的,例如窗口失去焦点;有关临时焦点更改的更多信息,请参阅焦点规范 - 返回:
-
如果焦点更改请求肯定会失败,则返回
false
; 如果可能会成功,则返回true
- 自从:
- 1.4
- 参见:
-
requestFocus
Requests by the reason ofcause
that thisComponent
get the input focus, and that thisComponent
's top-level ancestor become the focusedWindow
. This component must be displayable, focusable, visible and all of its ancestors (with the exception of the top-level Window) must be visible for the request to be granted. Every effort will be made to honor the request; however, in some cases it may be impossible to do so. Developers must never assume that this component is the focus owner until this component receives a FOCUS_GAINED event. If this request is denied because this component's top-level window cannot become the focused window, the request will be remembered and will be granted when the window is later focused by the user.This method returns a boolean value. If
false
is returned, the request is guaranteed to fail. Iftrue
is returned, the request will succeed unless it is vetoed, or an extraordinary event, such as disposal of the component's peer, occurs before the request can be granted by the native windowing system. Again, while a return value oftrue
indicates that the request is likely to succeed, developers must never assume that this component is the focus owner until this component receives a FOCUS_GAINED event.The focus request effect may also depend on the provided cause value. If this request is succeed the {FocusEvent} generated in the result will receive the cause value specified as the argument of the method.
This method cannot be used to set the focus owner to no component at all. Use
KeyboardFocusManager.clearGlobalFocusOwner
instead.Because the focus behavior of this method is platform-dependent, developers are strongly encouraged to use
requestFocusInWindow
when possible.Every effort will be made to ensure that
FocusEvent
s generated as a result of this request will have the specified temporary value. However, because specifying an arbitrary temporary state may not be implementable on all native windowing systems, correct behavior for this method can be guaranteed only for lightweightComponent
s. This method is not intended for general use, but exists instead as a hook for lightweight component libraries, such as Swing.Note: Not all focus transfers result from invoking this method. As such, a component may receive focus without this or any of the other
requestFocus
methods ofComponent
being invoked.- Parameters:
-
temporary
- true if the focus change is temporary, such as when the window loses the focus; for more information on temporary focus changes see the Focus Specification -
cause
- the cause why the focus is requested - Returns:
-
false
if the focus change request is guaranteed to fail;true
if it is likely to succeed - Since:
- 9
- See Also:
-
requestFocusInWindow
public boolean requestFocusInWindow()Requests that this Component get the input focus, if this Component's top-level ancestor is already the focused Window. This component must be displayable, focusable, visible and all of its ancestors (with the exception of the top-level Window) must be visible for the request to be granted. Every effort will be made to honor the request; however, in some cases it may be impossible to do so. Developers must never assume that this Component is the focus owner until this Component receives a FOCUS_GAINED event.This method returns a boolean value. If
false
is returned, the request is guaranteed to fail. Iftrue
is returned, the request will succeed unless it is vetoed, or an extraordinary event, such as disposal of the Component's peer, occurs before the request can be granted by the native windowing system. Again, while a return value oftrue
indicates that the request is likely to succeed, developers must never assume that this Component is the focus owner until this Component receives a FOCUS_GAINED event.This method cannot be used to set the focus owner to no Component at all. Use
KeyboardFocusManager.clearGlobalFocusOwner()
instead.The focus behavior of this method can be implemented uniformly across platforms, and thus developers are strongly encouraged to use this method over
requestFocus
when possible. Code which relies onrequestFocus
may exhibit different focus behavior on different platforms.Note: Not all focus transfers result from invoking this method. As such, a component may receive focus without this or any of the other
requestFocus
methods ofComponent
being invoked.- Returns:
-
false
if the focus change request is guaranteed to fail;true
if it is likely to succeed - Since:
- 1.4
- See Also:
-
requestFocusInWindow
Requests by the reason ofcause
that this Component get the input focus, if this Component's top-level ancestor is already the focused Window. This component must be displayable, focusable, visible and all of its ancestors (with the exception of the top-level Window) must be visible for the request to be granted. Every effort will be made to honor the request; however, in some cases it may be impossible to do so. Developers must never assume that this Component is the focus owner until this Component receives a FOCUS_GAINED event.This method returns a boolean value. If
false
is returned, the request is guaranteed to fail. Iftrue
is returned, the request will succeed unless it is vetoed, or an extraordinary event, such as disposal of the Component's peer, occurs before the request can be granted by the native windowing system. Again, while a return value oftrue
indicates that the request is likely to succeed, developers must never assume that this Component is the focus owner until this Component receives a FOCUS_GAINED event.The focus request effect may also depend on the provided cause value. If this request is succeed the
FocusEvent
generated in the result will receive the cause value specified as the argument of the method.This method cannot be used to set the focus owner to no Component at all. Use
KeyboardFocusManager.clearGlobalFocusOwner()
instead.The focus behavior of this method can be implemented uniformly across platforms, and thus developers are strongly encouraged to use this method over
requestFocus(FocusEvent.Cause)
when possible. Code which relies onrequestFocus(FocusEvent.Cause)
may exhibit different focus behavior on different platforms.Note: Not all focus transfers result from invoking this method. As such, a component may receive focus without this or any of the other
requestFocus
methods ofComponent
being invoked.- Parameters:
-
cause
- the cause why the focus is requested - Returns:
-
false
if the focus change request is guaranteed to fail;true
if it is likely to succeed - Since:
- 9
- See Also:
-
requestFocusInWindow
protected boolean requestFocusInWindow(boolean temporary) 请求使此组件
获得输入焦点,如果此组件
的顶级祖先已经是具有焦点的窗口
。该组件必须是可显示的、可聚焦的、可见的,并且所有祖先(顶级窗口除外)必须可见才能授予请求。将尽一切努力来满足请求;但是,在某些情况下可能无法做到。开发人员绝不能假设此组件是焦点所有者,直到此组件接收到FOCUS_GAINED事件为止。此方法返回一个布尔值。如果返回
false
,则请求肯定会失败。如果返回true
,则请求将成功除非被否决,或者在本地窗口系统授予请求之前发生异常事件,例如组件的对等体被处理。再次强调,虽然返回值为true
表示请求很可能成功,但开发人员绝不能假设此组件是焦点所有者,直到此组件接收到FOCUS_GAINED事件。此方法不能用于将焦点所有者设置为没有任何组件。请改用
KeyboardFocusManager.clearGlobalFocusOwner
。此方法的焦点行为可以在各个平台上统一实现,因此强烈建议开发人员在可能的情况下使用此方法而不是
requestFocus
。依赖于requestFocus
的代码可能在不同平台上表现出不同的焦点行为。将尽一切努力确保由于此请求而生成的
FocusEvent
具有指定的临时值。但是,由于在所有本地窗口系统上指定任意临时状态可能无法实现,因此此方法的正确行为仅对轻量级组件可以保证。此方法不适用于一般用途,而是作为轻量级组件库(例如Swing)的钩子存在。注意:并非所有焦点转移都是通过调用此方法而发生的。因此,组件可能在未调用此方法或任何其他
Component
的requestFocus
方法的情况下接收焦点。- 参数:
-
temporary
- 如果焦点更改是临时的,则为true,例如当窗口失去焦点时;有关临时焦点更改的更多信息,请参见焦点规范 - 返回:
-
如果焦点更改请求肯定会失败,则返回
false
;如果可能会成功,则返回true
- 自版本:
- 1.4
- 另请参阅:
-
getFocusCycleRootAncestor
返回此组件焦点遍历周期的焦点循环根容器。每个焦点遍历周期只有一个焦点循环根,而不是容器的每个组件只属于一个焦点遍历周期。作为焦点循环根的容器属于两个周期:一个根在容器本身,另一个根在容器的最近焦点循环根祖先。对于这样的容器,此方法将返回容器的最近焦点循环根祖先。- 返回:
- 此组件的最近焦点循环根祖先
- 自版本:
- 1.4
- 另请参阅:
-
isFocusCycleRoot
返回指定容器是否是此组件焦点遍历周期的焦点循环根。每个焦点遍历周期只有一个焦点循环根,而不是容器的每个组件只属于一个焦点遍历周期。- 参数:
-
container
- 要测试的容器 - 返回:
-
如果指定容器是此组件的焦点循环根,则返回
true
;否则返回false
- 自版本:
- 1.4
- 另请参阅:
-
transferFocus
public void transferFocus()将焦点转移到下一个组件,就好像此组件是焦点所有者一样。- 自版本:
- 1.1
- 另请参阅:
-
nextFocus
Deprecated.As of JDK version 1.1, replaced by transferFocus(). -
transferFocusBackward
public void transferFocusBackward()将焦点转移到上一个组件,就好像此组件是焦点所有者一样。- 自版本:
- 1.4
- 另请参阅:
-
transferFocusUpCycle
public void transferFocusUpCycle()将焦点向上移动一个焦点遍历周期。通常,焦点所有者设置为此组件的焦点循环根,并且当前焦点循环根设置为新焦点所有者的焦点循环根。但是,如果此组件的焦点循环根是一个窗口,则焦点所有者设置为焦点循环根的默认焦点组件,并且当前焦点循环根不变。- 自版本:
- 1.4
- 另请参阅:
-
hasFocus
public boolean hasFocus()如果此组件
是焦点所有者,则返回true
。此方法已过时,已被isFocusOwner()
替代。- 返回:
-
如果此
组件
是焦点所有者,则返回true
;否则返回false
- 自版本:
- 1.2
-
isFocusOwner
public boolean isFocusOwner()如果此组件
是焦点所有者,则返回true
。- 返回:
-
如果此
组件
是焦点所有者,则返回true
;否则返回false
- 自版本:
- 1.4
-
add
向组件添加指定的弹出菜单。- 参数:
-
popup
- 要添加到组件的弹出菜单。 - 抛出:
-
NullPointerException
- 如果popup
为null
- 自版本:
- 1.1
- 另请参阅:
-
remove
从组件中删除指定的弹出菜单。- 指定者:
-
remove
在接口MenuContainer
- 参数:
-
popup
- 要移除的弹出菜单 - 自版本:
- 1.1
- 另请参阅:
-
paramString
返回表示此组件状态的字符串。此方法仅用于调试目的,返回的字符串的内容和格式可能因实现而异。返回的字符串可能为空,但不能为null
。- 返回:
- 此组件状态的字符串表示形式
- 自版本:
- 1.0
-
toString
返回此组件及其值的字符串表示形式。 -
list
public void list()将此组件的列表打印到标准系统输出流System.out
。- 自版本:
- 1.0
- 另请参阅:
-
list
将此组件的列表打印到指定的输出流。- 参数:
-
out
- 打印流 - 抛出:
-
NullPointerException
- 如果out
为null
- 自版本:
- 1.0
-
list
向指定的打印流打印列表,从指定的缩进开始。- 参数:
-
out
- 打印流 -
indent
- 缩进的空格数 - 抛出:
-
NullPointerException
- 如果out
为null
- 自版本:
- 1.0
- 另请参阅:
-
list
将列表打印到指定的打印写入器。- 参数:
-
out
- 要打印到的打印写入器 - 抛出:
-
NullPointerException
- 如果out
为null
- 自版本:
- 1.1
-
list
向指定的打印写入器打印列表,从指定的缩进开始。- 参数:
-
out
- 要打印的打印写入器 -
indent
- 缩进的空格数 - 抛出:
-
NullPointerException
- 如果out
为null
- 自版本:
- 1.1
- 参见:
-
addPropertyChangeListener
向监听器列表中添加一个PropertyChangeListener。该监听器将注册所有此类的绑定属性,包括以下内容:- 此组件的字体("font")
- 此组件的背景颜色("background")
- 此组件的前景颜色("foreground")
- 此组件的可聚焦性("focusable")
- 此组件的焦点遍历键启用状态("focusTraversalKeysEnabled")
- 此组件的FORWARD_TRAVERSAL_KEYS集合("forwardFocusTraversalKeys")
- 此组件的BACKWARD_TRAVERSAL_KEYS集合("backwardFocusTraversalKeys")
- 此组件的UP_CYCLE_TRAVERSAL_KEYS集合("upCycleFocusTraversalKeys")
- 此组件的首选大小("preferredSize")
- 此组件的最小大小("minimumSize")
- 此组件的最大大小("maximumSize")
- 此组件的名称("name")
Component
继承了一个绑定属性,则对继承属性的更改不会触发事件。如果
listener
为null
,则不会抛出异常,也不会执行任何操作。- 参数:
-
listener
- 要添加的属性更改监听器 - 参见:
-
removePropertyChangeListener
从监听器列表中移除一个PropertyChangeListener。应使用此方法来移除为此类的所有绑定属性注册的PropertyChangeListeners。如果listener为null,则不会抛出异常,也不会执行任何操作。
- 参数:
-
listener
- 要移除的PropertyChangeListener - 参见:
-
getPropertyChangeListeners
返回在此组件上注册的所有属性更改监听器的数组。- 返回:
-
所有此组件的
PropertyChangeListener
,如果当前未注册任何属性更改监听器,则返回空数组 - 自版本:
- 1.4
- 参见:
-
addPropertyChangeListener
向特定属性的监听器列表中添加一个PropertyChangeListener。指定的属性可以是用户定义的,也可以是以下之一:- 此组件的字体("font")
- 此组件的背景颜色("background")
- 此组件的前景颜色("foreground")
- 此组件的可聚焦性("focusable")
- 此组件的焦点遍历键启用状态("focusTraversalKeysEnabled")
- 此组件的FORWARD_TRAVERSAL_KEYS集合("forwardFocusTraversalKeys")
- 此组件的BACKWARD_TRAVERSAL_KEYS集合("backwardFocusTraversalKeys")
- 此组件的UP_CYCLE_TRAVERSAL_KEYS集合("upCycleFocusTraversalKeys")
Component
继承了一个绑定属性,则对继承属性的更改不会触发事件。如果
propertyName
或listener
为null
,则不会抛出异常,也不会执行任何操作。- 参数:
-
propertyName
- 上述属性名称之一 -
listener
- 要添加的属性更改监听器 - 参见:
-
removePropertyChangeListener
从特定属性的监听器列表中移除一个PropertyChangeListener
。应使用此方法来移除为特定绑定属性注册的PropertyChangeListener
。如果
propertyName
或listener
为null
,则不会抛出异常,也不会执行任何操作。- 参数:
-
propertyName
- 有效的属性名称 -
listener
- 要移除的PropertyChangeListener - 参见:
-
getPropertyChangeListeners
返回与指定属性关联的所有监听器的数组。- 参数:
-
propertyName
- 属性名称 - 返回:
-
与指定属性关联的所有
PropertyChangeListener
;如果未添加此类监听器或propertyName
为null
,则返回空数组 - 自版本:
- 1.4
- 参见:
-
firePropertyChange
用于报告对象属性的绑定属性更改支持。当绑定属性发生更改时,可以调用此方法,并将适当的PropertyChangeEvent发送给任何已注册的PropertyChangeListeners。- 参数:
-
propertyName
- 已更改值的属性 -
oldValue
- 属性的先前值 -
newValue
- 属性的新值
-
firePropertyChange
用于报告布尔属性的绑定属性更改支持。当绑定属性发生更改时,可以调用此方法,并将适当的PropertyChangeEvent发送给任何已注册的PropertyChangeListeners。- 参数:
-
propertyName
- 已更改值的属性 -
oldValue
- 属性的先前值 -
newValue
- 属性的新值 - 自版本:
- 1.4
-
firePropertyChange
用于报告整数属性的绑定属性更改支持。当绑定属性发生更改时,可以调用此方法,并将适当的PropertyChangeEvent发送给任何已注册的PropertyChangeListeners。- 参数:
-
propertyName
- 已更改值的属性 -
oldValue
- 属性的先前值 -
newValue
- 属性的新值 - 自版本:
- 1.4
-
firePropertyChange
报告绑定属性更改。- 参数:
-
propertyName
- 已更改的属性的编程名称 -
oldValue
- 属性的旧值(作为字节) -
newValue
- 属性的新值(作为字节) - 自版本:
- 1.5
- 参见:
-
firePropertyChange
报告绑定属性更改。- 参数:
-
propertyName
- 已更改的属性的编程名称 -
oldValue
- 属性的旧值(作为字符) -
newValue
- 属性的新值(作为字符) - 自版本:
- 1.5
- 参见:
-
firePropertyChange
报告绑定属性更改。- 参数:
-
propertyName
- 已更改的属性的程序名称 -
oldValue
- 属性的旧值(作为short) -
newValue
- 属性的新值(作为short) - 自版本:
- 1.5
- 另请参阅:
-
firePropertyChange
报告绑定属性更改。- 参数:
-
propertyName
- 已更改的属性的程序名称 -
oldValue
- 属性的旧值(作为long) -
newValue
- 属性的新值(作为long) - 自版本:
- 1.5
- 另请参阅:
-
firePropertyChange
报告绑定属性更改。- 参数:
-
propertyName
- 已更改的属性的程序名称 -
oldValue
- 属性的旧值(作为float) -
newValue
- 属性的新值(作为float) - 自版本:
- 1.5
- 另请参阅:
-
firePropertyChange
报告绑定属性更改。- 参数:
-
propertyName
- 已更改的属性的程序名称 -
oldValue
- 属性的旧值(作为double) -
newValue
- 属性的新值(作为double) - 自版本:
- 1.5
- 另请参阅:
-
setComponentOrientation
设置用于对此组件中的元素或文本进行排序的与语言有关的方向。与语言有关的LayoutManager
和Component
子类将使用此属性来确定如何布局和绘制组件。在构造时,组件的方向设置为
ComponentOrientation.UNKNOWN
,表示尚未明确指定。UNKNOWN方向的行为与ComponentOrientation.LEFT_TO_RIGHT
相同。要设置单个组件的方向,请使用此方法。要设置整个组件层次结构的方向,请使用
applyComponentOrientation
。此方法更改与布局相关的信息,因此会使组件层次结构无效。
- 参数:
-
o
- 要设置的方向 - 另请参阅:
-
getComponentOrientation
检索用于对此组件中的元素或文本进行排序的与语言有关的方向。希望尊重方向的LayoutManager
和Component
子类在执行布局或绘制之前应调用此方法以获取组件的方向。- 返回:
- 用于对元素或文本进行排序的方向
- 另请参阅:
-
applyComponentOrientation
设置此组件及其所有包含的组件的ComponentOrientation
属性。此方法更改与布局相关的信息,因此会使组件层次结构无效。
- 参数:
-
orientation
- 此组件及其中包含的组件的新组件方向。 - 抛出:
-
NullPointerException
- 如果orientation
为null。 - 自版本:
- 1.4
- 另请参阅:
-
getAccessibleContext
获取与此Component
关联的AccessibleContext
。此基类实现的方法返回null。扩展Component
的类应实现此方法以返回与子类关联的AccessibleContext
。- 返回:
-
此
Component
的AccessibleContext
- 自版本:
- 1.3
-
setMixingCutoutShape
为此轻量级组件设置一个“混合切割”形状。此方法仅用于重量级/轻量级组件混合功能的目的,如果应用于重量级组件,则不会产生任何效果。默认情况下,轻量级组件被视为重量级/轻量级组件混合功能的不透明矩形。此方法使开发人员能够设置一个任意形状,以从位于z顺序中轻量级组件下方的重量级组件中切出。shape
参数可能具有以下值:null
- 恢复默认切割形状(等于组件的getBounds()
的矩形)- empty-shape - 不从重量级组件中切出任何内容。这使得此轻量级组件实际上是透明的。请注意,轻量级组件的后代仍会影响重量级组件的形状。一个empty-shape的示例是
new Rectangle()
。 - non-empty-shape - 给定形状将从重量级组件中切出。
最常见的需要“混合切割”形状的示例是玻璃窗格组件。
JRootPane.setGlassPane(java.awt.Component)
方法会自动将empty-shape设置为给定玻璃窗格组件的“混合切割”形状。如果开发人员需要玻璃窗格的其他“混合切割”形状(这很少见),则必须在将玻璃窗格安装到根窗格后手动更改。- 参数:
-
shape
- 新的“混合切割”形状 - 自版本:
- 9
-