直接已知子类:
AbstractButton
,
BasicInternalFrameTitlePane
,
Box
,
Box.Filler
,
JColorChooser
,
JComboBox
,
JFileChooser
,
JInternalFrame
,
JInternalFrame.JDesktopIcon
,
JLabel
,
JLayeredPane
,
JList
,
JMenuBar
,
JOptionPane
,
JPanel
,
JPopupMenu
,
JProgressBar
,
JRootPane
,
JScrollBar
,
JScrollPane
,
JSeparator
,
JSlider
,
JSpinner
,
JSplitPane
,
JTabbedPane
,
JTable
,
JTableHeader
,
JTextComponent
,
JToolBar
,
JToolTip
,
JTree
,
JViewport
public abstract class JComponent
extends
Container
implements
Serializable
该类是除顶层容器外所有 Swing 组件的基类。要使用继承自
JComponent
的组件,必须将该组件置于一个根为顶层 Swing 容器的包含层次结构(containment hierarchy)中。顶层 Swing 容器(如
JFrame
、
JDialog
和
JApplet
)是专门为其他 Swing 组件提供绘制自身场所的组件。有关包含层次结构的解释,请参阅
The Java Tutorial
中的
Swing Components and the Containment Hierarchy
一节。
JComponent
类提供:
使用 Swing 架构的标准组件和自定义组件的基类。
可由程序员指定,或者由用户在运行时选择(可选)的“可插入外观”(L&F)。每个组件的外观都由
UI 委托
提供,UI 委托是一个继承自
ComponentUI
的对象。有关更多信息,请参阅
The Java Tutorial
中的
How to Set the Look and Feel
。
全面的键击处理。有关更多信息,请参阅
The Swing Connection
中的文档
Keyboard Bindings in Swing
。
对工具提示的支持:光标停留在组件时所弹出的简短描述。有关更多信息,请参阅
The Java Tutorial
中的
How to Use Tool Tips
。
可访问性支持。
JComponent
包含
Accessible
接口中的所有方法,但是它实际上不实现该接口。由扩展
JComponent
的每个类负责实现该接口。
对特定于组件属性的支持。通过
putClientProperty(java.lang.Object, java.lang.Object)
和
getClientProperty(java.lang.Object)
方法,可以将“名称-对象”对与继承自
JComponent
的任意对象进行关联。
用于绘制的基础设施,包括双缓冲和对边框的支持。有关更多信息,请参阅
The Java Tutorial
中的
Painting
和
How to Use Borders
章节。
有关这些主题的更多信息,请参阅
Swing 包描述
和
The Java Tutorial
中的
The JComponent Class
一节。
JComponent
及其子类记录了某些属性的默认值。例如,
JTable
记录的默认行高为 16。每个具有
ComponentUI
的
JComponent
子类都将创建该
ComponentUI
作为其构造方法的一部分。为了提供特定的外观,每个
ComponentUI
都可以在创建它的
JComponent
上设置各种属性。例如,自定义的外观可能要求
JTable
的行高为 24。而所记录的默认值是安装
ComponentUI
前的属性值。如果需要为特定的属性使用具体值,则应该显式地设置它。
在版本 1.4 中,重新设计了焦点子系统。有关更多信息,请参阅
The Java Tutorial
中的
How to Use the Focus Subsystem
一节。
警告:
Swing 不是线程安全的。有关更多信息,请参阅
Swing's Threading
Policy
。
警告:
此类的序列化对象与以后的 Swing 版本不兼容。当前序列化支持适用于短期存储,或适用于在运行相同 Swing 版本的应用程序之间进行 RMI(Remote Method Invocation,远程方法调用)。从 1.4 版本开始,已在
java.beans
包中添加了支持所有 JavaBeans
TM
长期存储的功能。请参见
XMLEncoder
。
Action
,
setBorder(javax.swing.border.Border)
,
registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)
,
JOptionPane
,
setDebugGraphicsOptions(int)
,
setToolTipText(java.lang.String)
,
setAutoscrolls(boolean)
registerKeyboardAction
(
ActionListener
anAction,
String
aCommand,
KeyStroke
aKeyStroke,
int aCondition)
此方法现在已过时,对于类似的操作,请结合使用
getActionMap()
和
getInputMap()
。
removeAncestorListener
(
AncestorListener
listener)
注销
listener
,使其不再接收
AncestorEvent
。
removeNotify
()
通知此组件它不再有父组件。
removeVetoableChangeListener
(
VetoableChangeListener
listener)
从侦听器列表移除一个
VetoableChangeListener
。
repaint
(long tm,
int x,
int y,
int width,
int height)
如果要显示组件,则将指定的区域添加到脏区 (dirty region) 列表。
repaint
(
Rectangle
r)
如果要显示该组件,则将指定的区域添加到脏区列表。
boolean
requestDefaultFocus
()
已过时。
从 1.4 版本开始,由
FocusTraversalPolicy.getDefaultComponent(Container).requestFocus()
取代
requestFocus
()
请求此
Component
获取输入焦点。
boolean
requestFocus
(boolean temporary)
请求此
Component
获取输入焦点。
boolean
requestFocusInWindow
()
请求此
Component
获取输入焦点。
protected boolean
requestFocusInWindow
(boolean temporary)
请求此
Component
获取输入焦点。
resetKeyboardActions
()
注销首层
InputMaps
和
ActionMap
中的所有绑定。
reshape
(int x,
int y,
int w,
int h)
已过时。
从 JDK 5 开始,由
Component.setBounds(int, int, int, int)
取代。
移动此组件并调整其大小。
revalidate
()
支持推迟的自动布局。
scrollRectToVisible
(
Rectangle
aRect)
将
scrollRectToVisible()
消息转发到
JComponent
的父组件。
setActionMap
(
ActionMap
am)
将
ActionMap
设置为
am
。
setAlignmentX
(float alignmentX)
设置垂直对齐方式。
setAlignmentY
(float alignmentY)
设置水平对齐方式。
setAutoscrolls
(boolean autoscrolls)
设置
autoscrolls
属性。
setBackground
(
Color
bg)
设置此组件的背景色。
setBorder
(
Border
border)
设置此组件的边框。
setComponentPopupMenu
(
JPopupMenu
popup)
设置此
JComponent
的
JPopupMenu
。
setDebugGraphicsOptions
(int debugOptions)
启用或禁用与组件或其某个子组件内执行的每个图形操作有关的诊断信息。
static void
setDefaultLocale
(
Locale
l)
设置在创建时,用于初始化每个 JComponent 的语言环境属性的默认语言环境。
setDoubleBuffered
(boolean aFlag)
设置此组件是否应该使用缓冲区进行绘制。
setEnabled
(boolean enabled)
设置是否启用此组件。
setFocusTraversalKeys
(int id,
Set
<? extends
AWTKeyStroke
> keystrokes)
设置针对此 Component 的给定遍历操作的焦点遍历键。
setFont
(
Font
font)
设置此组件的字体。
setForeground
(
Color
fg)
设置此组件的前景色。
setInheritsPopupMenu
(boolean value)
设置如果此组件没有分配给它的
JPopupMenu
,那么
getComponentPopupMenu
是否应该委托给其父组件。
setInputMap
(int condition,
InputMap
map)
设置在
map
的
condition
条件下要使用的
InputMap
。
setInputVerifier
(
InputVerifier
inputVerifier)
设置此组件的输入校验器。
setMaximumSize
(
Dimension
maximumSize)
将此组件的最大大小设置为一个常量值。
setMinimumSize
(
Dimension
minimumSize)
将此组件的最小大小设置为一个常量值。
setNextFocusableComponent
(
Component
aComponent)
已过时。
从 1.4 版本开始,由
FocusTraversalPolicy
取代
setOpaque
(boolean isOpaque)
如果为 true,则该组件绘制其边界内的所有像素。
setPreferredSize
(
Dimension
preferredSize)
设置此组件的首选大小。
setRequestFocusEnabled
(boolean requestFocusEnabled)
提供一个关于此
JComponent
是否应该获得焦点的提示。
setToolTipText
(
String
text)
注册要在工具提示中显示的文本。
setTransferHandler
(
TransferHandler
newHandler)
设置
transferHandler
属性;如果该组件不支持数据传输操作,则为
null
。
protected void
setUI
(
ComponentUI
newUI)
设置此组件的外观委托。
setVerifyInputWhenFocusTarget
(boolean verifyInputWhenFocusTarget)
设置该值指示是否在此组件请求焦点前,为当前的焦点所有者调用输入校验器。
setVisible
(boolean aFlag)
使该组件可见或不可见。
unregisterKeyboardAction
(
KeyStroke
aKeyStroke)
此方法现在已过时。
update
(
Graphics
g)
调用
paint
。
updateUI
()
将 UI 属性重置为当前外观的值。
add
,
add
,
add
,
add
,
add
,
addContainerListener
,
addImpl
,
addPropertyChangeListener
,
addPropertyChangeListener
,
applyComponentOrientation
,
areFocusTraversalKeysSet
,
countComponents
,
deliverEvent
,
doLayout
,
findComponentAt
,
findComponentAt
,
getComponent
,
getComponentAt
,
getComponentAt
,
getComponentCount
,
getComponents
,
getComponentZOrder
,
getContainerListeners
,
getFocusTraversalKeys
,
getFocusTraversalPolicy
,
getLayout
,
getMousePosition
,
insets
,
invalidate
,
isAncestorOf
,
isFocusCycleRoot
,
isFocusCycleRoot
,
isFocusTraversalPolicyProvider
,
isFocusTraversalPolicySet
,
layout
,
list
,
list
,
locate
,
minimumSize
,
paintComponents
,
preferredSize
,
printComponents
,
processContainerEvent
,
processEvent
,
remove
,
remove
,
removeAll
,
removeContainerListener
,
setComponentZOrder
,
setFocusCycleRoot
,
setFocusTraversalPolicy
,
setFocusTraversalPolicyProvider
,
setLayout
,
transferFocusBackward
,
transferFocusDownCycle
,
validate
,
validateTree
action
,
add
,
addComponentListener
,
addFocusListener
,
addHierarchyBoundsListener
,
addHierarchyListener
,
addInputMethodListener
,
addKeyListener
,
addMouseListener
,
addMouseMotionListener
,
addMouseWheelListener
,
bounds
,
checkImage
,
checkImage
,
coalesceEvents
,
contains
,
createImage
,
createImage
,
createVolatileImage
,
createVolatileImage
,
disableEvents
,
dispatchEvent
,
enable
,
enableEvents
,
enableInputMethods
,
firePropertyChange
,
firePropertyChange
,
firePropertyChange
,
firePropertyChange
,
firePropertyChange
,
firePropertyChange
,
getBackground
,
getBounds
,
getColorModel
,
getComponentListeners
,
getComponentOrientation
,
getCursor
,
getDropTarget
,
getFocusCycleRootAncestor
,
getFocusListeners
,
getFocusTraversalKeysEnabled
,
getFont
,
getForeground
,
getGraphicsConfiguration
,
getHierarchyBoundsListeners
,
getHierarchyListeners
,
getIgnoreRepaint
,
getInputContext
,
getInputMethodListeners
,
getInputMethodRequests
,
getKeyListeners
,
getLocale
,
getLocation
,
getLocationOnScreen
,
getMouseListeners
,
getMouseMotionListeners
,
getMousePosition
,
getMouseWheelListeners
,
getName
,
getParent
,
getPeer
,
getPropertyChangeListeners
,
getPropertyChangeListeners
,
getSize
,
getToolkit
,
getTreeLock
,
gotFocus
,
handleEvent
,
hasFocus
,
hide
,
imageUpdate
,
inside
,
isBackgroundSet
,
isCursorSet
,
isDisplayable
,
isEnabled
,
isFocusable
,
isFocusOwner
,
isFocusTraversable
,
isFontSet
,
isForegroundSet
,
isLightweight
,
isMaximumSizeSet
,
isMinimumSizeSet
,
isPreferredSizeSet
,
isShowing
,
isValid
,
isVisible
,
keyDown
,
keyUp
,
list
,
list
,
list
,
location
,
lostFocus
,
mouseDown
,
mouseDrag
,
mouseEnter
,
mouseExit
,
mouseMove
,
mouseUp
,
move
,
nextFocus
,
paintAll
,
postEvent
,
prepareImage
,
prepareImage
,
processComponentEvent
,
processFocusEvent
,
processHierarchyBoundsEvent
,
processHierarchyEvent
,
processInputMethodEvent
,
processMouseWheelEvent
,
remove
,
removeComponentListener
,
removeFocusListener
,
removeHierarchyBoundsListener
,
removeHierarchyListener
,
removeInputMethodListener
,
removeKeyListener
,
removeMouseListener
,
removeMouseMotionListener
,
removeMouseWheelListener
,
removePropertyChangeListener
,
removePropertyChangeListener
,
repaint
,
repaint
,
repaint
,
resize
,
resize
,
setBounds
,
setBounds
,
setComponentOrientation
,
setCursor
,
setDropTarget
,
setFocusable
,
setFocusTraversalKeysEnabled
,
setIgnoreRepaint
,
setLocale
,
setLocation
,
setLocation
,
setName
,
setSize
,
setSize
,
show
,
show
,
size
,
toString
,
transferFocus
,
transferFocusUpCycle
WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
public static final int
WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
用于
registerKeyboardAction
的常量,意味着当接收组件是获得焦点的组件的祖先或者其本身就是获得焦点的组件时,应该调用命令。
另请参见:
常量字段值
public static final int
WHEN_IN_FOCUSED_WINDOW
用于
registerKeyboardAction
的常量,意味着当接收组件处于获得焦点的窗口内或者其本身就是获得焦点的组件时,应该调用命令。
另请参见:
常量字段值
public static final
String
TOOL_TIP_TEXT_KEY
光标位于组件上方时显示的注释,也称为“值提示”、“相交提示 (flyover help)”或“相交标签 (flyover label)”。
另请参见:
常量字段值
public
JComponent
()
默认的
JComponent
构造方法。除调用
Container
构造方法外,此构造方法几乎不进行初始化工作。例如,初始布局管理器为
null
。但是,它将组件的语言环境属性设置为
JComponent.getDefaultLocale
所返回的值。
另请参见:
getDefaultLocale()
public void
setInheritsPopupMenu
(boolean value)
设置如果此组件没有分配给它的
JPopupMenu
,那么
getComponentPopupMenu
是否应该委托给其父组件。
此方法的默认值是 false,但是某些作为多个
JComponent
实现的
JComponent
子类可能将其设置为 true。
这是一个绑定 (bound) 属性。
public void
setComponentPopupMenu
(
JPopupMenu
popup)
设置此
JComponent
的
JPopupMenu
。UI 负责注册绑定并添加必要的侦听器,这样可在恰当的时间显示
JPopupMenu
。何时显示
JPopupMenu
取决于外观:有些在鼠标事件中显示它,另一些则启用键绑定。
如果
popup
为 null,并且
getInheritsPopupMenu
返回 true,则将
getComponentPopupMenu
委托给父级。这将允许所有子组件继承父组件的 popupmenu。
这是一个绑定属性。
protected void
setUI
(
ComponentUI
newUI)
设置此组件的外观委托。
JComponent
子类通常重写此方法,以缩小参数类型。例如,在
JSlider
中:
public void setUI(SliderUI newUI) {
super.setUI(newUI);
此外,
JComponent
子类必须提供一个返回正确类型的
getUI
方法。例如:
public SliderUI getUI() {
return (SliderUI)ui;
protected void
paintComponent
(
Graphics
g)
如果 UI 委托为非
null
,则调用该 UI 委托的 paint 方法。向该委托传递
Graphics
对象的副本,以保护其余的 paint 代码免遭不可取消的更改(例如
Graphics.translate
)。
如果在子类中重写此方法,则不应该对传入的
Graphics
进行永久更改。例如,不应更改剪贴区的
Rectangle
或修改转换。如果需要进行这些操作,您会发现根据传入的
Graphics
创建一个新
Graphics
并进行操作更加方便。另外,如果不调用超类的实现,则必须遵守不透明属性,也就是说,如果此组件是不透明的,则必须以透明的颜色完全填充背景。如果不遵守不透明属性,则很可能看到可视的人为内容。
传入的
Graphics
对象可能安装了恒等转换以外的转换。在这种情况下,如果多次应用其他转换,则可能得到不可预料的结果。
public void
update
(
Graphics
g)
调用
paint
。不清除背景,而是查看
ComponentUI.update
,它由
paintComponent
调用。
覆盖:
类
Container
中的
update
参数:
g
- 在其中进行绘制的
Graphics
上下文
另请参见:
paint(java.awt.Graphics)
,
paintComponent(java.awt.Graphics)
,
ComponentUI
public void
paint
(
Graphics
g)
由 Swing 调用,以绘制组件。应用程序不应直接调用
paint
,而是应该使用
repaint
方法来安排重绘组件。
此方法实际上将绘制工作委托给三个受保护的方法:
paintComponent
、
paintBorder
和
paintChildren
。按列出的顺序调用这些方法,以确保子组件出现在组件本身的顶部。一般来说,不应在分配给边框的 insets 区域绘制组件及其子组件。子类可以始终重写此方法。只想特殊化 UI(外观)委托的
paint
方法的子类只需重写
paintComponent
。
覆盖:
类
Container
中的
paint
参数:
g
- 在其中进行绘制的
Graphics
上下文
另请参见:
paintComponent(java.awt.Graphics)
,
paintBorder(java.awt.Graphics)
,
paintChildren(java.awt.Graphics)
,
getComponentGraphics(java.awt.Graphics)
,
repaint(long, int, int, int, int)
参数:
g
- 在其中进行绘制的
Graphics
上下文
另请参见:
print(java.awt.Graphics)
,
printComponent(java.awt.Graphics)
,
printBorder(java.awt.Graphics)
,
printChildren(java.awt.Graphics)
public void
print
(
Graphics
g)
调用此方法打印指定
Graphics
的组件。此方法将导致对
printComponent
、
printBorder
和
printChildren
的调用。如果目的是定制打印外观的方式,建议重写前面提及的方法之一,而不是此方法。但是,如果想在调用超类行为之前准备好状态,则重写此方法很有用。例如,如果想在打印前更改组件的背景颜色,则可以执行以下操作:
public void print(Graphics g) {
Color orig = getBackground();
setBackground(Color.WHITE);
// wrap in try/finally so that we always restore the state
try {
super.print(g);
} finally {
setBackground(orig);
另外,对于将打印委托给其他对象的组件,在绘制期间就可以查询组件是否在打印操作的中间。
isPaintingForPrint
方法提供了这种功能并且此方法将改变其返回值:在即将呈现前改为
true
,在呈现后立即改为
false
。随着每一次更改,在此组件上都会触发一个名为
"paintingForPrint"
的属性更改事件。
此方法设置组件的状态,使得双缓冲无法使用:绘制将直接在传入的
Graphics
上完成。
覆盖:
类
Container
中的
print
参数:
g
- 在其中进行绘制的
Graphics
上下文
另请参见:
printComponent(java.awt.Graphics)
,
printBorder(java.awt.Graphics)
,
printChildren(java.awt.Graphics)
,
isPaintingForPrint()
public final boolean
isPaintingForPrint
()
如果此组件上的当前绘制操作是
print
操作的一部分,则返回
true
。当想要定制所打印的内容以及在屏幕上显示的内容时,此方法很有用。
通过侦听此组件上名为
"paintingForPrint"
的属性更改事件,可以检测此属性值中的更改。
注:此方法也提供其他高级别 Swing 打印 API 所提供的功能。但是,它严格处理绘制操作,不要因为高级别打印进程上提供的信息相混淆。例如,
JTable.print()
操作不一定会连续呈现完整的组件,此方法的返回值在该操作中可多次更改。组件甚至有可能在打印进程正在进行时便绘制到屏幕。在这种情况下,当且仅当该表作为打印进程的一部分进行绘制时,此方法的返回值为
true
。
public boolean
isManagingFocus
()
已过时。
从 1.4 版本开始,由
Component.setFocusTraversalKeys(int, Set)
和
Container.setFocusCycleRoot(boolean)
取代。
在版本 1.4 中,重新设计了焦点子系统。有关更多信息,请参阅
The Java Tutorial
中的
How to Use the Focus Subsystem
一节。
将此
JComponent
的焦点遍历键更改为 CTRL+TAB 和 CTRL+SHIFT+TAB。在计算焦点遍历循环时,
SortingFocusTraversalPolicy
仍然没有将此 JComponent 的子代考虑在内。
另请参见:
Component.setFocusTraversalKeys(int, java.util.Set extends java.awt.AWTKeyStroke>)
,
SortingFocusTraversalPolicy
public void
setNextFocusableComponent
(
Component
aComponent)
已过时。
从 1.4 版本开始,由
FocusTraversalPolicy
取代
在版本 1.4 中,重新设计了焦点子系统。有关更多信息,请参阅
The Java Tutorial
中的
How to Use the Focus Subsystem
一节。
为此
JComponent
的焦点遍历循环重写默认的
FocusTraversalPolicy
:无条件地将指定的
Component
设置为循环中的下一个
Component
,并将此
JComponent
设置为循环中指定
Component
的前一个
Component
。
参数:
aComponent
- 焦点遍历循环中应该跟在此
JComponent
后的
Component
另请参见:
getNextFocusableComponent()
,
FocusTraversalPolicy
public
Component
getNextFocusableComponent
()
已过时。
从 1.4 版本开始,由
FocusTraversalPolicy
取代。
在版本 1.4 中,重新设计了焦点子系统。有关更多信息,请参阅
The Java Tutorial
中的
How to Use the Focus Subsystem
一节。
返回之前对此
JComponent
调用
setNextFocusableComponent(Component)
所设置的
Component
。
public void
setRequestFocusEnabled
(boolean requestFocusEnabled)
提供一个关于此
JComponent
是否应该获得焦点的提示。这只是一个提示,由使用者决定请求焦点是否遵守此属性。鼠标操作通常遵守此属性,而键盘操作则并非如此。例如,在鼠标操作期间,外观可以在请求焦点前验证此属性是否为 true。如果不想在
JComponent
上按下鼠标以获得焦点,而是希望通过键盘遍历
JComponent
,则要多次使用此方法。如果不希望此
JComponent
可聚焦,请使用
setFocusable
方法。
有关更多信息,请参阅
The Java Tutorial
中的
How to Use the Focus Subsystem
一节。
返回:
如果此 component 应该获得焦点,则返回
true
;否则返回
false
另请参见:
setRequestFocusEnabled(boolean)
,
Focus Specification
,
Component.isFocusable()
public void
requestFocus
()
请求此
Component
获取输入焦点。有关此方法的完整描述,请参阅
Component.requestFocus()
。
注意,不推荐使用此方法,因为其行为与平台有关。建议使用
requestFocusInWindow()
。若要了解有关焦点的更多信息,请参阅
The Java Tutorial
中的
How to Use the Focus Subsystem
一节。
覆盖:
类
Component
中的
requestFocus
从以下版本开始:
另请参见:
Component.requestFocusInWindow()
,
Component.requestFocusInWindow(boolean)
public boolean
requestFocus
(boolean temporary)
请求此
Component
获取输入焦点。有关此方法的完整描述,请参阅
Component.requestFocus(boolean)
。
注意,不推荐使用此方法,因为其行为与平台有关。建议使用
requestFocusInWindow(boolean)
。若要了解有关焦点的更多信息,请参阅
The Java Tutorial
中的
How to Use the Focus Subsystem
一节。
覆盖:
类
Component
中的
requestFocus
参数:
temporary
- boolean 值,指示焦点更改是否为临时的
返回:
如果焦点更改请求一定会失败,则返回
false
;如果有可能成功,则返回
true
从以下版本开始:
另请参见:
Component.requestFocusInWindow()
,
Component.requestFocusInWindow(boolean)
public boolean
requestFocusInWindow
()
请求此
Component
获取输入焦点。有关此方法的完整描述,请参阅
Component.requestFocusInWindow()
。
若要了解有关焦点的更多信息,请参阅
The Java Tutorial
中的
How to Use the Focus Subsystem
一节。
覆盖:
类
Component
中的
requestFocusInWindow
返回:
如果焦点更改请求一定会失败,则返回
false
;如果有可能成功,则返回
true
从以下版本开始:
另请参见:
Component.requestFocusInWindow()
,
Component.requestFocusInWindow(boolean)
protected boolean
requestFocusInWindow
(boolean temporary)
请求此
Component
获取输入焦点。有关此方法的完整描述,请参阅
Component.requestFocusInWindow(boolean)
。
若要了解有关焦点的更多信息,请参阅
The Java Tutorial
中的
How to Use the Focus Subsystem
一节。
覆盖:
类
Component
中的
requestFocusInWindow
参数:
temporary
- boolean 值,指示焦点更改是否为临时的
返回:
如果焦点更改请求一定会失败,则返回
false
;如果有可能成功,则返回
true
从以下版本开始:
另请参见:
Component.requestFocusInWindow()
,
Component.requestFocusInWindow(boolean)
public void
grabFocus
()
请求此 Component 获取输入焦点,并请求此 Component 的顶层祖先成为获得焦点的 Window。此组件对于要准许的请求而言必须是可显示的、可见的、可聚焦的。
此方法用于焦点实现。客户端代码不应使用此方法;相反,它应该使用
requestFocusInWindow()
。
setVerifyInputWhenFocusTarget
public void
setVerifyInputWhenFocusTarget
(boolean verifyInputWhenFocusTarget)
设置该值指示是否在此组件请求焦点前,为当前的焦点所有者调用输入校验器。默认值为 true。对于像 Cancel 按钮或滚动条等组件可将该值设置为 false,这些组件应该是激活的,即使当前焦点所有者的输入没有“通过”该组件的输入校验器的检验。
参数:
verifyInputWhenFocusTarget
-
verifyInputWhenFocusTarget
属性的值
从以下版本开始:
另请参见:
InputVerifier
,
setInputVerifier(javax.swing.InputVerifier)
,
getInputVerifier()
,
getVerifyInputWhenFocusTarget()
public void
setPreferredSize
(
Dimension
preferredSize)
设置此组件的首选大小。如果
preferredSize
为
null
,则要求 UI 提供首选大小。
覆盖:
类
Component
中的
setPreferredSize
参数:
preferredSize
- 新的首选大小,或者为 null
另请参见:
Component.getPreferredSize()
,
Component.isPreferredSizeSet()
public
Dimension
getPreferredSize
()
如果
preferredSize
已设置为一个非
null
值,则返回该值。如果 UI 委托的
getPreferredSize
方法返回一个非
null
值,则返回该值;否则服从组件的布局管理器。
覆盖:
类
Container
中的
getPreferredSize
返回:
preferredSize
属性的值
另请参见:
setPreferredSize(java.awt.Dimension)
,
ComponentUI
public void
setMaximumSize
(
Dimension
maximumSize)
将此组件的最大大小设置为一个常量值。对
getMaximumSize
的后续调用将始终返回此值;而不要求组件的 UI 计算它。将最大大小设置为
null
可恢复默认行为。
覆盖:
类
Component
中的
setMaximumSize
参数:
maximumSize
- 一个包含所需最大允许大小的
Dimension
另请参见:
getMaximumSize()
public
Dimension
getMaximumSize
()
如果已将最大大小设置为一个非
null
值,则返回该值。如果 UI 委托的
getMaximumSize
方法返回一个非
null
值,则返回该值;否则服从组件的布局管理器。
覆盖:
类
Container
中的
getMaximumSize
返回:
maximumSize
属性的值
另请参见:
setMaximumSize(java.awt.Dimension)
,
ComponentUI
public void
setMinimumSize
(
Dimension
minimumSize)
将此组件的最小大小设置为一个常量值。对
getMinimumSize
的后续调用将始终返回此值;不会要求组件的 UI 计算它。将最小大小设置为
null
可恢复默认行为。
覆盖:
类
Component
中的
setMinimumSize
参数:
minimumSize
- 此组件新的最小大小
另请参见:
getMinimumSize()
public
Dimension
getMinimumSize
()
如果已将最小大小设置为一个非
null
值,则返回该值。如果 UI 委托的
getMinimumSize
方法返回一个非
null
值,则返回该值;否则服从组件的布局管理器。
覆盖:
类
Container
中的
getMinimumSize
返回:
minimumSize
属性的值
另请参见:
setMinimumSize(java.awt.Dimension)
,
ComponentUI
参数:
x
- 该点的
x
坐标
y
- 该点的
y
坐标
返回:
如果此组件逻辑上包含 x,y,则返回 true
另请参见:
Component.contains(int, int)
,
ComponentUI
public void
setBorder
(
Border
border)
设置此组件的边框。
Border
对象负责定义组件的 insets(直接对组件重写所有 insets 设置),并且可选地呈现这些 insets 范围内的边框装饰。要为 swing 组件创建有装饰的和无装饰的区域(例如边距和填充),应该使用边框(而不是 insets)。在单个组件中可使用复合边框来嵌套多个边框。
虽然从技术上讲可以在继承自
JComponent
的所有对象上设置边框,但是很多标准 Swing 组件的外观实现无法正常地使用用户设置的边框。通常,如果希望在标准的 Swing 组件而不是
JPanel
或
JLabel
上设置边框时,建议将组件放入
JPanel
中,并在
JPanel
上设置边框。
这是一个绑定属性。
public
Graphics
getGraphics
()
返回此组件的图形上下文,该上下文允许您绘制组件。使用此方法可获取一个
Graphics
对象,然后在该对象上调用操作,以便绘制组件。
覆盖:
类
Component
中的
getGraphics
返回:
此组件的图形上下文
另请参见:
Component.paint(java.awt.Graphics)
DebugGraphics.LOG_OPTION - 打印文本消息。
DebugGraphics.FLASH_OPTION - 绘制的内容闪烁几次。
DebugGraphics.BUFFERED_OPTION - 创建一个
ExternalWindow
,显示在 View 的脱屏缓冲区上执行的操作。
DebugGraphics.NONE_OPTION 禁用调试。
值 0 不会更改该调试选项。
当前值是
debugOptions
按位或运算的结果
DebugGraphics.LOG_OPTION - 打印文本消息。
DebugGraphics.FLASH_OPTION - 绘制的内容闪烁几次。
DebugGraphics.BUFFERED_OPTION - 创建一个
ExternalWindow
,显示在 View 的脱屏缓冲区上执行的操作。
DebugGraphics.NONE_OPTION 禁用调试。
值 0 不会更改该调试选项。
另请参见:
setDebugGraphicsOptions(int)
public void
registerKeyboardAction
(
ActionListener
anAction,
String
aCommand,
KeyStroke
aKeyStroke,
int aCondition)
此方法现在已过时,对于类似的操作,请结合使用
getActionMap()
和
getInputMap()
。例如,要将
KeyStroke
aKeyStroke
绑定到
Action
anAction
,现在使用:
component.getInputMap().put(aKeyStroke, aCommand);
component.getActionMap().put(aCommmand, anAction);
以上假定您希望绑定适用于
WHEN_FOCUSED
。要为其他焦点状态注册绑定,可使带有整数参数的
getInputMap
方法。
注册一个新的键盘动作。如果出现一个与
aKeyStroke
匹配的键事件并且
aCondition
经过了验证,则调用
anAction
。
KeyStroke
对象定义了键盘键和一个或多个修改键(alt、shift、ctrl、meta)的特定组合。
aCommand
将在传递的事件(如果指定)中进行设置。
aCondition
可以为:
WHEN_FOCUSED
仅在发生键击、同时组件具有焦点时才调用该动作。
WHEN_IN_FOCUSED_WINDOW
当发生键击、同时组件具有焦点时,或者组件处于具有焦点的窗口中时调用该动作。注意,该组件无需是该窗口的直接子级,它可以处于窗口包含层次结构中的任意位置。换句话说,只要窗口中的
任意
组件具有焦点,就调用向此组件注册的动作。
WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
当发生键击、同时组件具有焦点时,或者该组件是具有焦点的组件的祖先时调用该动作。
这种键击和条件的组合允许您为指定的键击+修改键组合定义高级别(语义)的动作事件(使用 KeyStroke 类),并导向具有焦点的组件的父组件或子组件,或者该组件本身。换句话说,在任意的组件层次结构中,可将任意的键组合导向层次结构中的适当组件,并调用具体的方法(通常通过适配器对象的方式)。
如果已经使用相同的 charCode 和修改键为接收容器注册了某个动作,则
anAction
将取代该动作。
public void
registerKeyboardAction
(
ActionListener
anAction,
KeyStroke
aKeyStroke,
int aCondition)
此方法现在已过时,对于类似的操作,请结合使用
getActionMap()
和
getInputMap()
。
public void
unregisterKeyboardAction
(
KeyStroke
aKeyStroke)
此方法现在已过时。要注销现有绑定,可以从
ActionMap/InputMap
中移除该绑定,或者在
InputMap
中放置一个虚拟(dummy)绑定。从
InputMap
中移除绑定允许父
InputMap
中的绑定处于激活状态,而在
InputMap
中放置一个 dummy 绑定则可以有效地禁止绑定发生。
注销一个键盘动作。此动作将从
ActionMap
(如果存在)和
InputMap
中移除绑定。
getActionForKeyStroke
public
ActionListener
getActionForKeyStroke
(
KeyStroke
aKeyStroke)
返回执行针对给定键击而注册的操作的对象。
InputMap
map)
设置在
map
的
condition
条件下要使用的
InputMap
。
null
意味着不想使用任何绑定(包括来自 UI 的绑定)。这不会重新安装 UI
InputMap
(如果有)。
condition
为以下值之一:
WHEN_IN_FOCUSED_WINDOW
WHEN_FOCUSED
WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
如果
condition
是
WHEN_IN_FOCUSED_WINDOW
且
map
不是
ComponentInputMap
,则抛出
IllegalArgumentException
。类似地,如果
condition
不是上述值之一,则抛出
IllegalArgumentException
。
参数:
condition
- 上述值之一
map
- 用于给定条件的
InputMap
IllegalArgumentException
- 如果
condition
是
WHEN_IN_FOCUSED_WINDOW
且
map
不是
ComponentInputMap
的实例;或者
condition
不是上面指定的合法值之一
从以下版本开始:
参数:
condition
- WHEN_IN_FOCUSED_WINDOW、WHEN_FOCUSED、WHEN_ANCESTOR_OF_FOCUSED_COMPONENT 之一
返回:
指定
condition
的
InputMap
从以下版本开始:
int height)
返回基线。基线是从组件顶部开始测量的。此方法主要用于
LayoutManager
,以便沿组件的基线对齐组件。返回值小于 0 表示此组件没有合理的基线,并且
LayoutManager
不应该根据该组件的基线来对齐此组件。
此方法调用相同名称的
ComponentUI
方法。如果此组件不具有
ComponentUI
,则返回 -1。如果返回大于等于 0 的值,则该组件有一个对于任何大于等于最小大小的大小均有效的基线,并且可以使用
getBaselineResizeBehavior
确定基线如何随大小发生更改。
覆盖:
类
Component
中的
getBaseline
参数:
width
- 适合基线的宽度
height
- 适合基线的高度
返回:
基线,如果基线 < 0,则表示没有合理的基线
IllegalArgumentException
- 如果 width 或 height < 0
从以下版本开始:
另请参见:
getBaselineResizeBehavior()
,
FontMetrics
getBaselineResizeBehavior
public
Component.BaselineResizeBehavior
getBaselineResizeBehavior
()
返回一个枚举,指示组件的基线如何随大小更改而发生更改。此方法主要用于布局管理器和 GUI 生成器。
此方法调用相同名称的
ComponentUI
方法。如果此组件不具有
ComponentUI
,则返回
BaselineResizeBehavior.OTHER
。子类不应该返回
null
;如果无法计算基线,则返回
BaselineResizeBehavior.OTHER
。调用者应该首先使用
getBaseline
询问基线,如果返回值大于等于 0,则使用此方法。此方法返回一个
BaselineResizeBehavior.OTHER
以外的值是可以接受的,即使
getBaseline
返回一个小于 0 的值。
覆盖:
类
Component
中的
getBaselineResizeBehavior
返回:
一个指示基线如何随组件大小的更改发生变化的枚举
从以下版本开始:
另请参见:
getBaseline(int, int)
public boolean
requestDefaultFocus
()
已过时。
从 1.4 版本开始,由
FocusTraversalPolicy.getDefaultComponent(Container).requestFocus()
取代
在版本 1.4 中,重新设计了焦点子系统。有关更多信息,请参阅
The Java Tutorial
中的
How to Use the Focus Subsystem
一节。
请求此
JComponent
FocusTraversalPolicy
的默认
Component
上的焦点。如果此
JComponent
是焦点循环根,则使用其
FocusTraversalPolicy
。否则,使用此
JComponent
的焦点循环根祖先的
FocusTraversalPolicy
。
public void
setEnabled
(boolean enabled)
设置是否启用此组件。已启用的组件可以响应用户输入,而未启用的组件则无法响应用户输入。可以在禁用某些组件时更改其可视化表现形式,以向用户提供反馈,说明其无法接受输入。
注:禁用某个组件不会禁用其子组件。
注:禁用轻量组件不会阻止其接收 MouseEvent。
覆盖:
类
Component
中的
setEnabled
参数:
enabled
- 如果应该启用此组件,则为 true;否则为 false
另请参见:
Component.isEnabled()
,
Component.isLightweight()
public void
setBackground
(
Color
bg)
设置此组件的背景色。背景色仅在组件是不透明时才使用,并且只能由
JComponent
或
ComponentUI
实现的子类使用。
JComponent
的直接子类必须重写
paintComponent
以遵守此属性。
由外观决定是否遵守此属性,某些外观可以选择忽略它。
覆盖:
类
Component
中的
setBackground
参数:
bg
- 所需的背景
Color
另请参见:
Component.getBackground()
,
setOpaque(boolean)
public static void
setDefaultLocale
(
Locale
l)
设置在创建时,用于初始化每个 JComponent 的语言环境属性的默认语言环境。初始值是 VM 的默认语言环境。
默认的语言环境具有 "AppContext" 范围,所以 applet(以及可能在单个 VM 中运行的多个轻量级应用程序)可以有它们自己的设置。applet 可以安全地更改其默认的语言环境,因为它不会影响其他 applet(或浏览器)。
protected void
processComponentKeyEvent
(
KeyEvent
e)
处理该组件本身可识别的所有键事件。在焦点管理器和所有相关侦听器可以侦听事件后调用此方法。仅在事件尚未被使用时才调用此方法。在键盘 UI 逻辑之前调用此方法。
实现此方法不执行任何操作。如果子类本身处理某些键事件,则这些子类通常重写此方法。如果事件已经处理,则使用该事件。
KeyboardFocusManager
,
DefaultKeyboardFocusManager
,
Component.processEvent(java.awt.AWTEvent)
,
Component.dispatchEvent(java.awt.AWTEvent)
,
Component.addKeyListener(java.awt.event.KeyListener)
,
Component.enableEvents(long)
,
Component.isShowing()
JComponent.WHEN_FOCUSED
JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
JComponent.WHEN_IN_FOCUSED_WINDOW
pressed
- 如果键被按下,则为 true
返回:
如果有该动作的绑定并且已启用该动作,则返回 true
从以下版本开始:
参数:
event
- 触发显示弹出式菜单的
MouseEvent
;如果不是因鼠标事件而显示弹出式菜单,则为
null
返回:
显示
JPopupMenu
的位置,或者返回
null
从以下版本开始:
public void
setAutoscrolls
(boolean autoscrolls)
设置
autoscrolls
属性。如果为
true
,则在将鼠标拖动到组件的边界外并且鼠标移动已暂停(但是继续按下鼠标按键)时,人为地生成鼠标拖动事件。该人为事件使得拖动动作似乎在跨越组件的边界时所建立的方向上得以恢复。支持自动滚动的组件必须处理
mouseDragged
事件,通过调用带有一个包含鼠标事件位置的矩形的
scrollRectToVisible
来完成。所有支持项选择以及通常在
JScrollPane
(
JTable
、
JList
、
JTree
、
JTextArea
和
JEditorPane
)中显示的 Swing 组件都将以这种方式处理鼠标拖动事件。要在任何其他组件中启用自动滚动,可添加一个调用
scrollRectToVisible
的鼠标移动侦听器。例如,给定
JPanel
、
myPanel
:
MouseMotionListener doScrollRectToVisible = new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
Rectangle r = new Rectangle(e.getX(), e.getY(), 1, 1);
((JPanel)e.getSource()).scrollRectToVisible(r);
myPanel.addMouseMotionListener(doScrollRectToVisible);
autoScrolls
属性的默认值是
false
。
参数:
autoscrolls
- 如果为 true,则在将鼠标拖动到组件的边界外并且继续按下鼠标按键时,生成人为鼠标拖动事件;否则为 false
另请参见:
getAutoscrolls()
,
JViewport
,
JScrollPane
public void
setTransferHandler
(
TransferHandler
newHandler)
设置
transferHandler
属性;如果该组件不支持数据传输操作,则为
null
。
如果
newHandler
不为
null
并且系统属性
suppressSwingDropSupport
不为 true,则此方法将在
JComponent
上安装一个
DropTarget
。该系统属性的默认值为 false,所以将添加一个
DropTarget
。
有关更多信息,请参阅
The Java Tutorial
中的
How to Use Drag and Drop and Data Transfer
一节。
protected void
processMouseEvent
(
MouseEvent
e)
处理此组件上发生的鼠标事件,通过将其指派到任意已注册的
MouseListener
对象来完成,有关此方法的完整描述,请参阅
Component.processMouseEvent(MouseEvent)
。
覆盖:
类
Component
中的
processMouseEvent
参数:
e
- 鼠标事件
从以下版本开始:
另请参见:
Component.processMouseEvent(java.awt.event.MouseEvent)
protected void
processMouseMotionEvent
(
MouseEvent
e)
处理鼠标移动事件,如 MouseEvent.MOUSE_DRAGGED。
覆盖:
类
Component
中的
processMouseMotionEvent
参数:
e
- the
MouseEvent
另请参见:
MouseEvent
public void
enable
()
已过时。
从 JDK version 1.1 开始,由
java.awt.Component.setEnabled(boolean)
取代。
覆盖:
类
Component
中的
enable
public void
disable
()
已过时。
从 JDK version 1.1 开始,由
java.awt.Component.setEnabled(boolean)
取代。
覆盖:
类
Component
中的
disable
public
AccessibleContext
getAccessibleContext
()
返回与此
JComponent
关联的
AccessibleContext
。此基类所实现的方法返回 null。扩展
JComponent
的类应该实现此方法,以返回与子类关联的
AccessibleContext
。
覆盖:
类
Component
中的
getAccessibleContext
返回:
此
JComponent
的
AccessibleContext
向此组件添加任意的键/值“客户端属性”。
get/putClientProperty
方法提供对每个实例小型哈希表的访问。调用者可以使用 get/putClientProperty 为另一个模块所创建的组件添加注释。例如,布局管理器可能以此方式来存储每个子组件的各种约束。例如:
componentA.putClientProperty("to the left of", componentB);
如果值为
null
,则此方法将移除该属性。通过
PropertyChange
事件报告客户端属性的更改。该属性的名称(为了 PropertyChange 事件)是
key.toString()
。
clientProperty
字典不支持对 JComponent 的大范围扩展,也不适于在设计新组件时用做子类化的替代方法。
参数:
key
- 新的客户端属性键
value
- 新的客户端属性值,如果为
null
,则此方法将移除该属性
另请参见:
getClientProperty(java.lang.Object)
,
Container.addPropertyChangeListener(java.beans.PropertyChangeListener)
Set
<? extends
AWTKeyStroke
> keystrokes)
设置针对此 Component 的给定遍历操作的焦点遍历键。有关此方法的完整描述,请参阅
Component.setFocusTraversalKeys(int, java.util.Set extends java.awt.AWTKeyStroke>)
。
覆盖:
类
Container
中的
setFocusTraversalKeys
参数:
id
- KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS 或 KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 之一
keystrokes
- 指定操作的 AWTKeyStroke Set
IllegalArgumentException
- 如果 id 不是 KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS、KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS 或 KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS 之一、keystrokes 包含 null、keystroke 中的 Object 不是 AWTKeyStroke、任意 keystroke 表示一个 KEY_TYPED 事件,或者任意 keystroke 已经映射到此 Component 的另一个焦点遍历操作
从以下版本开始:
另请参见:
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS
,
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS
,
KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS
public
Rectangle
getBounds
(
Rectangle
rv)
将此组件的边界存储到“返回值”
rv
中并返回
rv
。如果
rv
为
null
,则分配一个新的
Rectangle
。如果调用者不希望在堆上分配一个新的
Rectangle
对象,则这种
getBounds
是很有用的。
覆盖:
类
Component
中的
getBounds
参数:
rv
- 返回值,被修改为该组件的边界
返回:
rv
;如果
rv
为
null
,则返回具有此组件边界的新建
Rectangle
public
Dimension
getSize
(
Dimension
rv)
将此组件的宽度/高度存储到“返回值”
rv
中并返回
rv
。如果
rv
为
null
,则分配一个新的
Dimension
对象。如果调用者不希望在堆上分配一个新的
Dimension
对象,则这种
getSize
是很有用的。
覆盖:
类
Component
中的
getSize
参数:
rv
- 返回值,被修改为该组件的大小
返回:
rv
public
Point
getLocation
(
Point
rv)
将此组件的 x,y 原点存储到“返回值”
rv
中并返回
rv
。如果
rv
为
null
,则分配一个新的
Point
。如果调用者不希望在堆上分配一个新的
Point
对象,则这种
getLocation
是很有用的。
覆盖:
类
Component
中的
getLocation
参数:
rv
- 返回值,被修改为该组件的位置
返回:
rv
public int
getX
()
返回组件原点的当前 x 坐标。此方法优于
component.getBounds().x
或
component.getLocation().x
,因为它不会导致任何堆分配。
覆盖:
类
Component
中的
getX
返回:
组件原点的当前 x 坐标
public int
getY
()
返回组件原点的当前 y 坐标。此方法优于
component.getBounds().y
或
component.getLocation().y
,因为它不会导致任何堆分配。
覆盖:
类
Component
中的
getY
返回:
组件原点的当前 y 坐标
public int
getWidth
()
返回此组件的当前宽度。此方法优于
component.getBounds().width
或
component.getSize().width
,因为它不会导致任何堆分配。
覆盖:
类
Component
中的
getWidth
返回:
此组件的当前宽度
public int
getHeight
()
返回此组件的当前高度。此方法优于
component.getBounds().height
或
component.getSize().height
,因为它不会导致任何堆分配。
覆盖:
类
Component
中的
getHeight
返回:
此组件的当前高度
如果此组件是完全不透明的,则返回 true。
不透明组件将每个像素绘制在其矩形边界内。透明的组件则仅绘制部分像素或者不绘制任何像素,允许其底层像素“透视出来”。因此,没有完全绘制其像素的组件则提供了一定程度的透明度。
保证总是完全绘制其内容的子类应该重写此方法并返回 true。
覆盖:
类
Component
中的
isOpaque
返回:
如果此组件是完全不透明的,则返回 true
另请参见:
setOpaque(boolean)
public void
setOpaque
(boolean isOpaque)
如果为 true,则该组件绘制其边界内的所有像素。否则该组件可能不绘制部分或所有像素,从而允许其底层像素透视出来。
对于
JComponent
而言,此属性的默认值是 false。但是对于大多数标准的
JComponent
子类(如
JButton
和
JTree
),此属性的默认值与外观有关。
boolean newValue)
支持报告 boolean 属性的绑定属性更改。当更改了绑定属性,并且向所有已注册的 PropertyChangeListener 发送相应的 PropertyChangeEvent 时可以调用此方法。
覆盖:
类
Component
中的
firePropertyChange
参数:
propertyName
- 其值已更改的属性
oldValue
- 该属性以前的值
newValue
- 该属性的新值
int newValue)
支持报告整数属性的绑定属性更改。当更改了绑定属性,并且向所有已注册的 PropertyChangeListener 发送相应的 PropertyChangeEvent 时可以调用此方法。
覆盖:
类
Component
中的
firePropertyChange
参数:
propertyName
- 其值已更改的属性
oldValue
- 该属性以前的值
newValue
- 该属性的新值
protected void
fireVetoableChange
(
String
propertyName,
Object
oldValue,
Object
newValue)
throws
PropertyVetoException
支持报告约束 (constrained) 属性的更改。当更改了约束属性,并且向所有已注册的
VetoableChangeListener
发送相应的
PropertyChangeEvent
时可以调用此方法。
addVetoableChangeListener
public void
addVetoableChangeListener
(
VetoableChangeListener
listener)
向侦听器列表添加一个
VetoableChangeListener
。为所有属性注册该侦听器。
removeVetoableChangeListener
public void
removeVetoableChangeListener
(
VetoableChangeListener
listener)
从侦听器列表移除一个
VetoableChangeListener
。此方法移除了一个为所有属性注册的
VetoableChangeListener
。
返回:
组件的所有
VetoableChangeListener
;如果当前没有注册任何可否决更改侦听器,则返回一个空数组
从以下版本开始:
另请参见:
addVetoableChangeListener(java.beans.VetoableChangeListener)
,
removeVetoableChangeListener(java.beans.VetoableChangeListener)
返回:
组件的所有
AncestorListener
;如果当前没有注册任何祖先侦听器,则返回一个空数组
从以下版本开始:
另请参见:
addAncestorListener(javax.swing.event.AncestorListener)
,
removeAncestorListener(javax.swing.event.AncestorListener)
可以使用 class 字面值来指定
listenerType
参数,如
Foo
Listener.class
。例如,可以使用以下代码来查询
JComponent
c
的鼠标侦听器:
MouseListener[] mls = (MouseListener[])(c.getListeners(MouseListener.class));
如果不存在这样的侦听器,则此方法将返回一个空数组。
覆盖:
类
Container
中的
getListeners
参数:
listenerType
- 所请求的侦听器的类型;此参数应该指定一个从
java.util.EventListener
继承的接口
返回:
返回一个在此组件上注册为
Foo
Listener
的所有对象所组成的数组;如果尚未添加这样的侦听器,则返回一个空数组
ClassCastException
- 如果
listenerType
未指定一个实现
java.util.EventListener
的类或接口
从以下版本开始:
另请参见:
getVetoableChangeListeners()
,
getAncestorListeners()
参数:
tm
- 不使用此参数
x
- 脏区的 x 值
y
- 脏区的 y 值
width
- 脏区的宽度
height
- 脏区的高度
另请参见:
Component.isShowing()
,
RepaintManager.addDirtyRegion(javax.swing.JComponent, int, int, int, int)
支持推迟的自动布局。
调用
invalidate
并将此组件的
validateRoot
添加到需要验证的组件列表中。指派完当前所有未完成的事件后进行验证。换句话说,调用此方法后,将验证浏览此组件的包含层次结构时找到的第一个 validateRoot(如果有)。默认情况下,对
JRootPane
、
JScrollPane
和
JTextField
调用
isValidateRoot
返回 true。
当属性值更改,从而影响此组件的大小、位置或内部布局时,就对此组件自动调用此方法。这种自动更新不同于 AWT,因为通常来说,程序不再需要调用
validate
来获得要更新的 GUI 的内容。
protected
String
paramString
()
返回此
JComponent
的字符串表示形式。此方法仅在调试时使用,对于各个实现,所返回字符串的内容和格式可能有所不同。返回的字符串可以为空,但不可以为
null
。
覆盖:
类
Container
中的
paramString
返回:
此
JComponent
的字符串表示形式