java.lang.Object java.awt.Component java.awt.Container javax.swing.JComponent
public abstract class JComponent
该类是除顶层容器外所有 Swing 组件的基类。要使用继承自 JComponent
的组件,必须将该组件置于一个根为顶层 Swing 容器的包含层次结构(containment hierarchy)中。顶层 Swing 容器(如 JFrame
、JDialog
和 JApplet
)是专门为其他 Swing 组件提供绘制自身场所的组件。有关包含层次结构的解释,请参阅 The Java Tutorial 中的 Swing Components and the Containment Hierarchy 一节。
JComponent
类提供:
ComponentUI
的对象。有关更多信息,请参阅 The Java Tutorial 中的 How to Set the Look and Feel。 JComponent
包含 Accessible
接口中的所有方法,但是它实际上不实现该接口。由扩展 JComponent
的每个类负责实现该接口。 putClientProperty(java.lang.Object, java.lang.Object)
和 getClientProperty(java.lang.Object)
方法,可以将“名称-对象”对与继承自 JComponent
的任意对象进行关联。 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
包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder
。
KeyStroke
,
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)
嵌套类摘要 | |
---|---|
class |
JComponent.AccessibleJComponent 用于为可访问性提供默认支持的 JComponent 内部类。 |
从类 java.awt.Container 继承的嵌套类/接口 |
---|
Container.AccessibleAWTContainer |
从类 java.awt.Component 继承的嵌套类/接口 |
---|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy |
字段摘要 | |
---|---|
protected AccessibleContext |
accessibleContext 与此 JComponent 关联的 AccessibleContext 。 |
protected EventListenerList |
listenerList 此组件的事件侦听器列表。 |
static String |
TOOL_TIP_TEXT_KEY 光标位于组件上方时显示的注释,也称为“值提示”、“相交提示 (flyover help)”或“相交标签 (flyover label)”。 |
protected ComponentUI |
ui 此组件的外观委托。 |
static int |
UNDEFINED_CONDITION 某些 API 使用的常量,意味着没有定义任何条件。 |
static int |
WHEN_ANCESTOR_OF_FOCUSED_COMPONENT 用于 registerKeyboardAction 的常量,意味着当接收组件是获得焦点的组件的祖先或者其本身就是获得焦点的组件时,应该调用命令。 |
static int |
WHEN_FOCUSED 用于 registerKeyboardAction 的常量,意味着在组件获得焦点时应该调用命令。 |
static int |
WHEN_IN_FOCUSED_WINDOW 用于 registerKeyboardAction 的常量,意味着当接收组件处于获得焦点的窗口内或者其本身就是获得焦点的组件时,应该调用命令。 |
从类 java.awt.Component 继承的字段 |
---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
从接口 java.awt.image.ImageObserver 继承的字段 |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
构造方法摘要 | |
---|---|
JComponent() 默认的 JComponent 构造方法。 |
方法摘要 | ||
---|---|---|
void |
addAncestorListener(AncestorListener listener) 注册 listener ,从而当组件或其任意祖先移动,或者变得可见或不可见时该侦听器将收到 AncestorEvent 。 |
|
void |
addNotify() 通知此组件它现在已有了一个父组件。 |
|
void |
addVetoableChangeListener(VetoableChangeListener listener) 向侦听器列表添加一个 VetoableChangeListener 。 |
|
void |
computeVisibleRect(Rectangle visibleRect) 返回该 Component 的“可见 rect 矩形”,即此组件及其所有祖先的可见矩形的交集。 |
|
boolean |
contains(int x, int y) 为了进行鼠标处理,让 UI 委托来定义此组件的精确形状。 |
|
JToolTip |
createToolTip() 返回用于显示工具提示的 JToolTip 实例。 |
|
void |
disable() 已过时。 从 JDK version 1.1 开始,由 java.awt.Component.setEnabled(boolean) 取代。 |
|
void |
enable() 已过时。 从 JDK version 1.1 开始,由 java.awt.Component.setEnabled(boolean) 取代。 |
|
void |
firePropertyChange(String propertyName, boolean oldValue, boolean newValue) 支持报告 boolean 属性的绑定属性更改。 |
|
void |
firePropertyChange(String propertyName, char oldValue, char newValue) 报告绑定属性的改变。 |
|
void |
firePropertyChange(String propertyName, int oldValue, int newValue) 支持报告整数属性的绑定属性更改。 |
|
protected void |
fireVetoableChange(String propertyName, Object oldValue, Object newValue) 支持报告约束 (constrained) 属性的更改。 |
|
AccessibleContext |
getAccessibleContext() 返回与此 JComponent 关联的 AccessibleContext 。 |
|
ActionListener |
getActionForKeyStroke(KeyStroke aKeyStroke) 返回执行针对给定键击而注册的操作的对象。 |
|
ActionMap |
getActionMap() 返回用于确定为特定 KeyStroke 绑定触发何种 Action 的 ActionMap 。 |
|
float |
getAlignmentX() 重写 Container.getAlignmentX 以返回垂直对齐方式。 |
|
float |
getAlignmentY() 重写 Container.getAlignmentY 以返回水平对齐方式。 |
|
AncestorListener[] |
getAncestorListeners() 返回在此组件上注册的所有祖先侦听器所组成的数组。 |
|
boolean |
getAutoscrolls() 获取 autoscrolls 属性。 |
|
int |
getBaseline(int width, int height) 返回基线。 |
|
Component.BaselineResizeBehavior |
getBaselineResizeBehavior() 返回一个枚举,指示组件的基线如何随大小更改而发生更改。 |
|
Border |
getBorder() 返回此组件的边框;如果当前未设置边框,则返回 null 。 |
|
Rectangle |
getBounds(Rectangle rv) 将此组件的边界存储到“返回值” rv 中并返回 rv 。 |
|
Object |
getClientProperty(Object key) 返回具有指定键的属性的值。 |
|
protected Graphics |
getComponentGraphics(Graphics g) 返回用于绘制此组件的图形对象。 |
|
JPopupMenu |
getComponentPopupMenu() 返回为此组件分配的 JPopupMenu 。 |
|
int |
getConditionForKeyStroke(KeyStroke aKeyStroke) 返回确定是否发生已注册动作以响应指定键击事件的条件。 |
|
int |
getDebugGraphicsOptions() 返回图形调试的状态。 |
|
static Locale |
getDefaultLocale() 返回在创建时,用于初始化每个 JComponent 的语言环境属性的默认语言环境。 |
|
FontMetrics |
getFontMetrics(Font font) 获取指定 Font 的 FontMetrics 。 |
|
Graphics |
getGraphics() 返回此组件的图形上下文,该上下文允许您绘制组件。 |
|
int |
getHeight() 返回此组件的当前高度。 |
|
boolean |
getInheritsPopupMenu() 如果应该从父组件继承 JPopupMenu,则返回 true。 |
|
InputMap |
getInputMap() 返回组件具有焦点时所使用的 InputMap 。 |
|
InputMap |
getInputMap(int condition) 返回 condition 中所使用的 InputMap 。 |
|
InputVerifier |
getInputVerifier() 返回此组件的输入校验器。 |
|
Insets |
getInsets() 如果已在此组件上设置了边框,则返回该边框的 insets;否则调用 super.getInsets 。 |
|
Insets |
getInsets(Insets insets) 返回包含此组件 inset 值的 Insets 对象。 |
|
|
getListeners(Class<T> listenerType) 返回当前在此 JComponent 上注册为 FooListener 的所有对象所组成的数组。 |
|
Point |
getLocation(Point rv) 将此组件的 x,y 原点存储到“返回值” rv 中并返回 rv 。 |
|
Dimension |
getMaximumSize() 如果已将最大大小设置为一个非 null 值,则返回该值。 |
|
Dimension |
getMinimumSize() 如果已将最小大小设置为一个非 null 值,则返回该值。 |
|
Component |
getNextFocusableComponent() 已过时。 从 1.4 版本开始,由 FocusTraversalPolicy 取代。 |
|
Point |
getPopupLocation(MouseEvent event) 返回在此组件坐标系统中显示弹出式菜单的首选位置。 |
|
Dimension |
getPreferredSize() 如果 preferredSize 已设置为一个非 null 值,则返回该值。 |
|
KeyStroke[] |
getRegisteredKeyStrokes() 返回启动已注册动作的 KeyStrokes 。 |
|
JRootPane |
getRootPane() 返回此组件的 JRootPane 祖先。 |
|
Dimension |
getSize(Dimension rv) 将此组件的宽度/高度存储到“返回值” rv 中并返回 rv 。 |
|
Point |
getToolTipLocation(MouseEvent event) 返回工具提示在此组件坐标系统中的位置。 |
|
String |
getToolTipText() 返回通过 setToolTipText 所设置的工具提示字符串。 |
|
String |
getToolTipText(MouseEvent event) 返回用作 event 工具提示的字符串。 |
|
Container |
getTopLevelAncestor() 返回此组件的顶层祖先(包含的 Window 或 Applet );如果尚未将此组件添加到任意容器中,则返回 null 。 |
|
TransferHandler |
getTransferHandler() 获取 transferHandler 属性。 |
|
String |
getUIClassID() 返回用于查找 wing.plaf.ComponentUI 类(定义了此组件的外观)名的 UIDefaults 键。 |
|
boolean |
getVerifyInputWhenFocusTarget() 返回值指示是否在此组件请求焦点前,为当前的焦点所有者调用输入校验器。 |
|
VetoableChangeListener[] |
getVetoableChangeListeners() 返回在此组件上注册的所有可否决更改侦听器所组成的数组。 |
|
Rectangle |
getVisibleRect() 返回该 Component 的“可见矩形”,即此组件的可见矩形 new Rectangle(0, 0, getWidth(), getHeight()) 及其所有祖先的可见矩形的交集。 |
|
int |
getWidth() 返回此组件的当前宽度。 |
|
int |
getX() 返回组件原点的当前 x 坐标。 |
|
int |
getY() 返回组件原点的当前 y 坐标。 |
|
void |
grabFocus() 请求此 Component 获取输入焦点,并请求此 Component 的顶层祖先成为获得焦点的 Window。 |
|
boolean |
isDoubleBuffered() 返回此组件是否应该使用缓冲区进行绘制。 |
|
static boolean |
isLightweightComponent(Component c) 如果此组件是轻量的,也就是说,如果它没有本机窗口系统同位体,则返回 true。 |
|
boolean |
isManagingFocus() 已过时。 从 1.4 版本开始,由 Component.setFocusTraversalKeys(int, Set) 和 Container.setFocusCycleRoot(boolean) 取代。 |
|
boolean |
isOpaque() 如果此组件是完全不透明的,则返回 true。 |
|
boolean |
isOptimizedDrawingEnabled() 如果此组件平铺显示其子组件(也就是说,它可以保证子组件不重叠),则返回 true。 |
|
boolean |
isPaintingForPrint() 如果此组件上的当前绘制操作是 print 操作的一部分,则返回 true 。 |
|
boolean |
isPaintingTile() 如果组件当前正在绘制 tile,则返回 true。 |
|
boolean |
isRequestFocusEnabled() 如果此 JComponent 应该获得焦点,则返回 true ;否则返回 false 。 |
|
boolean |
isValidateRoot() 如果此方法返回 true,则此组件的子代调用 revalidate 将导致从此根开始对整棵树进行验证。 |
|
void |
paint(Graphics g) 由 Swing 调用,以绘制组件。 |
|
protected void |
paintBorder(Graphics g) 绘制组件的边框。 |
|
protected void |
paintChildren(Graphics g) 绘制此组件的子组件。 |
|
protected void |
paintComponent(Graphics g) 如果 UI 委托为非 null ,则调用该 UI 委托的 paint 方法。 |
|
void |
paintImmediately(int x, int y, int w, int h) 立即绘制此组件及其与该区域重叠的子代中的指定区域。 |
|
void |
paintImmediately(Rectangle r) 立即绘制指定的区域。 |
|
protected String |
paramString() 返回此 JComponent 的字符串表示形式。 |
|
void |
print(Graphics g) 调用此方法打印指定 Graphics 的组件。 |
|
void |
printAll(Graphics g) 调用此方法打印组件。 |
|
protected void |
printBorder(Graphics g) 打印组件的边框。 |
|
protected void |
printChildren(Graphics g) 打印此组件的子组件。 |
|
protected void |
printComponent(Graphics g) 在打印操作期间调用此方法。 |
|
protected void |
processComponentKeyEvent(KeyEvent e) 处理该组件本身可识别的所有键事件。 |
|
protected boolean |
processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed) 由于发生 KeyEvent e 而调用此方法处理 ks 的键绑定。 |
|
protected void |
processKeyEvent(KeyEvent e) 重写 processKeyEvent 以处理事件。 |
|
protected void |
processMouseEvent(MouseEvent e) 处理此组件上发生的鼠标事件,通过将其指派到任意已注册的 MouseListener 对象来完成,有关此方法的完整描述,请参阅 Component.processMouseEvent(MouseEvent) 。 |
|
protected void |
processMouseMotionEvent(MouseEvent e) 处理鼠标移动事件, |