javax.swing

接口
异常
java.lang.Object
  继承者 java.awt.Component
      继承者 java.awt.Container
          继承者 javax.swing.JComponent
所有已实现的接口:
ImageObserver, MenuContainer, Serializable
直接已知子类:
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 容器(如 JFrameJDialogJApplet)是专门为其他 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 中的 PaintingHow to Use Borders 章节。
有关这些主题的更多信息,请参阅 Swing 包描述The Java Tutorial 中的 The JComponent Class 一节。

JComponent 及其子类记录了某些属性的默认值。例如,JTable 记录的默认行高为 16。每个具有 ComponentUIJComponent 子类都将创建该 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 绑定触发何种 ActionActionMap
 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)
          获取指定 FontFontMetrics
 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 对象。
<T extends EventListener>
T[]
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()
          返回此组件的顶层祖先(包含的 WindowApplet);如果尚未将此组件添加到任意容器中,则返回 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)
          处理鼠标移动事件,

JDK 1.6 中文手册