JavaTM 2 Platform
Standard Ed. 5.0

javax.swing
类 JComponent

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 package description 和《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 版本的应用程序之间进行 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.BltBufferStrategy, Component.FlipBufferStrategy
 
字段摘要
protected  AccessibleContext accessibleContext
          与此 JComponent 关联的 AccessibleContext
protected  EventListenerList listenerList
          此组件的事件侦听器列表。
static String TOOL_TIP_TEXT_KEY
          光标经过组件时所显示的注释,也称为“值提示”、“相交提示”或“相交标签”。
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,这样当组件或其任意祖先移动,或者变得可见或不可见时该侦听器可接收 AncestorEvents
 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)
          支持报告 bound 属性的布尔属性的更改。
 void firePropertyChange(String propertyName, char oldValue, char newValue)
          报告 bound 属性的改变。
 void firePropertyChange(String propertyName, int oldValue, int newValue)
          支持报告 bound 属性的整数属性的更改。
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 属性。
 Border getBorder()
          返回此组件的边框,如果当前未设置边框,则返回 null
 Rectangle getBounds(Rectangle rv)
          将此组件的边界存储到“返回值”rv 中并返回 rv
 Object getClientProperty(Object key)
          返回具有指定键的属性值。
protected  Graphics getComponentGraphics(Graphics g)
          返回用于绘制此组件的 graphics 对象。
 JPopupMenu getComponentPopupMenu()
          返回为此组件分配的 JPopupMenu
 int getConditionForKeyStroke(KeyStroke aKeyStroke)
          返回确定是否执行已注册动作 (action) 的条件,以响应指定的快捷键事件。
 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 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)
          调用此方法以打印组件。
 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)
          处理鼠标移动事件,如 MouseEvent.MOUSE_DRAGGED。
 void putClientProperty(Object key, Object value)
          向此组件添加任意的键/值“客户端属性”。
 void registerKeyboardAction(ActionListener anAction, KeyStroke aKeyStroke, int aCondition)
          此方法现在已过时,对于类似的操作,请结合使用 getActionMap()getInputMap()
 void registerKeyboardAction(ActionListener anAction, String aCommand, KeyStroke aKeyStroke, int aCondition)
          此方法现在已过时,对于类似的操作,请结合使用 getActionMap()getInputMap()
 void removeAncestorListener(AncestorListener listener)
          注销 listener,使其不再接收 AncestorEvents
 void removeNotify()
          通知此组件它不再有父组件。
 void removeVetoableChangeListener(VetoableChangeListener listener)
          从侦听器列表移除一个 VetoableChangeListener
 void repaint(long tm, int x, int y, int width, int height)
          如果要显示组件,则将指定的区域添加到脏区 (dirty region) 列表。
 void repaint(Rectangle r)
          如果要显示该组件,则将指定的区域添加到脏区列表。
 boolean requestDefaultFocus()
          已过时。 从 1.4 版本开始,由 FocusTraversalPolicy.getDefaultComponent(Container).requestFocus() 取代
 void requestFocus()
          请求此 Component 获得输入焦点。
 boolean requestFocus(boolean temporary)
          请求此 Component 获得输入焦点。
 boolean requestFocusInWindow()
          请求此 Component 获得输入焦点。
protected  boolean requestFocusInWindow(boolean temporary)
          请求此 Component 获得输入焦点。
 void resetKeyboardActions()
          取消首层 InputMapsActionMap 中的所有绑定。
 void reshape(int x, int y, int w, int h)
          已过时。 从 JDK 5 开始,由 Component.setBounds(int, int, int, int) 取代。

移动此组件并调整其大小。

 void revalidate()
          支持推迟的自动布局。
 void scrollRectToVisible(Rectangle aRect)
          将 scrollRectToVisible() 消息转发到 JComponent 的父组件。
 void setActionMap(ActionMap am)
          将 ActionMap 设置为 am
 void setAlignmentX(float alignmentX)
          设置垂直对齐方式。
 void setAlignmentY(float alignmentY)
          设置水平对齐方式。
 void setAutoscrolls(boolean autoscrolls)
          设置 autoscrolls 属性。
 void setBackground(Color bg)
          设置此组件的背景色。
 void setBorder(Border border)
          设置此组件的边框。
 void setComponentPopupMenu(JPopupMenu popup)
          设置此 JComponentJPopupMenu
 void setDebugGraphicsOptions(int debugOptions)
          启用或禁用与组件或其某个子组件内执行的每个图形操作有关的诊断信息。
static void setDefaultLocale(Locale l)
          设置在创建时,用于初始化每个 JComponent 的语言环境属性的默认语言环境。
 void setDoubleBuffered(boolean aFlag)
          设置此组件是否应该使用缓冲区进行绘制。
 void setEnabled(boolean enabled)
          设置是否启用此组件。
 void setFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes)
          设置针对此 Component 的给定遍历操作的焦点遍历键。
 void setFont(Font font)
          设置此组件的字体。
 void setForeground(Color fg)
          设置此组件的前景色。
 void setInheritsPopupMenu(boolean value)
          设置如果此组件确实没有已分配的 JPopupMenu,那么 getComponentPopupMenu 是否应该委托给其父级。
 void setInputMap(int condition, InputMap map)
          设置在 mapcondition 条件下要使用的 InputMap
 void setInputVerifier(InputVerifier inputVerifier)
          设置此组件的输入校验器。
 void setMaximumSize(Dimension maximumSize)
          将此组件的最大大小设置为一个常量值。
 void setMinimumSize(Dimension minimumSize)
          将此组件的最低大小设置为一个常量值。
 void setNextFocusableComponent(Component aComponent)
          已过时。 从 1.4 版本开始,由 FocusTraversalPolicy 取代
 void setOpaque(boolean isOpaque)
          如果为 true,则该组件绘制其边界内的所有像素。
 void setPreferredSize(Dimension preferredSize)
          设置此组件的首选大小。
 void setRequestFocusEnabled(boolean requestFocusEnabled)
          提供一个关于此 JComponent 是否应该获得焦点的提示。
 void setToolTipText(String text)
          注册要在工具提示中显示的文本。
 void setTransferHandler(TransferHandler newHandler)
          设置 transferHandler 属性,如果该组件不支持数据传输操作,则为 null
protected  void setUI(ComponentUI newUI)
          设置此组件的外观委托。
 void setVerifyInputWhenFocusTarget(boolean verifyInputWhenFocusTarget)
          设置该值以指示是否在此组件请求焦点前,为当前的焦点所有者调用输入校验器。
 void setVisible(boolean aFlag)
          使该组件可见或不可见。
 void unregisterKeyboardAction(KeyStroke aKeyStroke)
          此方法现在已过时。
 void update(Graphics g)
          调用 paint
 void updateUI()
          将 UI 属性重置为当前外观的值。
 
从类 java.awt.Container 继承的方法
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
 
从类 java.awt.Component 继承的方法
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
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

ui

protected transient ComponentUI ui
此组件的外观委托。


listenerList

protected EventListenerList listenerList
此组件的事件侦听器列表。


WHEN_FOCUSED

public static final int WHEN_FOCUSED
用于 registerKeyboardAction 的常量,意味着在组件获得焦点时应该调用该命令。

另请参见:
常量字段值

WHEN_ANCESTOR_OF_FOCUSED_COMPONENT

public static final int WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
用于 registerKeyboardAction 的常量,意味着当接收组件是获得焦点的组件的祖先或者其本身就是获得焦点的组件时,应该调用该命令。

另请参见:
常量字段值

WHEN_IN_FOCUSED_WINDOW

public static final int WHEN_IN_FOCUSED_WINDOW
用于 registerKeyboardAction 的常量,意味着当接收的组件处于拥有焦点的窗口内或者其本身就是获得焦点的组件时,应该调用命令。

另请参见:
常量字段值

UNDEFINED_CONDITION

public static final int UNDEFINED_CONDITION
某些 API 使用的常量,意味着未定义条件。

另请参见:
常量字段值

TOOL_TIP_TEXT_KEY

public static final String TOOL_TIP_TEXT_KEY
光标经过组件时所显示的注释,也称为“值提示”、“相交提示”或“相交标签”。

另请参见:
常量字段值

accessibleContext

protected AccessibleContext accessibleContext
与此 JComponent 关联的 AccessibleContext

构造方法详细信息

JComponent

public JComponent()
默认的 JComponent 构造方法。除调用 Container 构造方法外,此构造方法几乎不进行初始化工作。例如,初始布局管理器为 null。但是,它确实将组件的语言环境属性设置为 JComponent.getDefaultLocale 所返回的值。

另请参见:
getDefaultLocale()
方法详细信息

setInheritsPopupMenu

public void setInheritsPopupMenu(boolean value)
设置如果此组件确实没有已分配的 JPopupMenu,那么 getComponentPopupMenu 是否应该委托给其父级。

此方法的默认值是 false,但是某些作为多个 JComponent 实现的 JComponent 子类可能将其设置为 true。

这是一个 bound 属性。

参数:
value - JPopupMenu 是否为继承的
从以下版本开始:
1.5
另请参见:
setComponentPopupMenu(javax.swing.JPopupMenu)

getInheritsPopupMenu

public boolean getInheritsPopupMenu()
如果从父组件继承 JPopupMenu,则返回 true。

从以下版本开始:
1.5
另请参见:
setComponentPopupMenu(javax.swing.JPopupMenu)

setComponentPopupMenu

public void setComponentPopupMenu(JPopupMenu popup)
设置此 JComponentJPopupMenu。UI 负责注册绑定并添加必要的侦听器,这样可在恰当的时间显示 JPopupMenu。何时显示 JPopupMenu 取决于外观:有时可能在鼠标事件中显示它,有时则可能启用键绑定。

如果 popup 为 null,并且 getInheritsPopupMenu 返回 true,则将 getComponentPopupMenu 委托给父级。这将允许所有子组件继承父组件的 popupmenu。

这是一个 bound 属性。

参数:
popup - - 分配给此组件的弹出式内容,可能为 null
从以下版本开始:
1.5
另请参见:
getComponentPopupMenu()

getComponentPopupMenu

public JPopupMenu getComponentPopupMenu()
返回为此组件分配的 JPopupMenu。如果尚未给此组件分配 JPopupMenu 并且 getInheritsPopupMenu 为 true,则此方法返回 getParent().getComponentPopupMenu()(假定父级是有效的)。

返回:
分配给此组件的 JPopupMenu,如果未分配弹出式内容,则为 null
从以下版本开始:
1.5
另请参见:
setComponentPopupMenu(javax.swing.JPopupMenu)

updateUI

public void updateUI()
将 UI 属性重置为当前外观的值。JComponent 的子类必须以如下方式重写此方法:
   public void updateUI() {
      setUI((SliderUI)UIManager.getUI(this);
   }
  

另请参见:
setUI(javax.swing.plaf.ComponentUI), UIManager.getLookAndFeel(), UIManager.getUI(javax.swing.JComponent)

setUI

protected void setUI(ComponentUI newUI)
设置此组件的外观委托。JComponent 的子类通常重写此方法,以收缩参数类型。例如,在 JSlider 中:
 public void setUI(SliderUI newUI) {
     super.setUI(newUI);
 }
  

另外 JComponent 子类必须提供一个返回正确类型的 getUI 方法。例如:

 public SliderUI getUI() {
     return (SliderUI)ui;
 }
 

参数:
newUI - 新的 UI 委托
另请参见:
updateUI(), UIManager.getLookAndFeel(), UIManager.getUI(javax.swing.JComponent)

getUIClassID

public String getUIClassID()
返回用于查找 wing.plaf.ComponentUI 类(定义了此组件的外观)名称的 UIDefaults 键。大多数应用程序无需调用此方法。支持可插入外观的 JComponent 子类应该重写此方法,以返回映射到定义其外观的 ComponentUI 子类的 ComponentUI 键。

返回:
用于 ComponentUI 子类的 UIDefaults
另请参见:
UIDefaults.getUI(javax.swing.JComponent)

getComponentGraphics

protected Graphics getComponentGraphics(Graphics g)
返回用于绘制此组件的 graphics 对象。如果开启了 DebugGraphics,则根据需要创建一个新的 DebugGraphics 对象。否则只是配置指定 graphics 对象的前景和字体。

参数:
g - 初始的 Graphics 对象
返回:
为此组件配置的 Graphics 对象

paintComponent

protected void paintComponent(Graphics g)
如果 UI 委托为非 null,则调用该 UI 委托的 paint 方法。向该委托传递 Graphics 对象的副本,以保护其余的 paint 代码免遭不可取消的更改(例如 Graphics.translate)。

如果在子类中重写此方法,则不应该对传入到 Graphics 中的内容进行永久更改。例如,不应更改剪裁矩形 或修改转换。如果需要进行这些操作,您会发现根据传入的 Graphics 创建一个新 Graphics 并操作它会更容易一些。另外,如果不调用超类的实现,则必须遵守不透明属性,也就是如果此组件是不透明的,则必须以透明的颜色完全填充背景。如果不遵守不透明属性,则很可能看到可视化的人为内容。

传入的 Graphics 对象可能具有与该对象上已安装的标识转换所不同的转换。在这种情况下,如果多次应用其他转换,则可能得到不可预料的结果。

参数:
g - 要保护的 Graphics 对象
另请参见:
paint(java.awt.Graphics), ComponentUI

paintChildren

protected void paintChildren(Graphics g)
绘制此组件的子组件。如果 shouldUseBuffer 为 true,则所有的组件祖先都没有缓冲区,并且组件子级可以使用缓冲区(如果有)。否则,祖先具有当前正在使用的缓冲区,并且子组件应该不使用缓冲区进行绘制。

参数:
g - 在其中进行绘制的 Graphics 上下文
另请参见:
paint(java.awt.Graphics), Container.paint(java.awt.Graphics)

paintBorder

protected void paintBorder(Graphics g)
绘制组件的边框。

如果在子类中重写此方法,则不应该对传入的 Graphics 进行永久更改。例如,不应更改剪贴区的 Rectangle 或修改转换。如果需要进行这些操作,您会发现根据传入的 Graphics 创建一个新 Graphics 并操作它会更容易一些。

参数:
g - 在其中进行绘制的 Graphics 上下文
另请参见:
paint(java.awt.Graphics), setBorder(javax.swing.border.Border)

update

public void update(Graphics g)
调用 paint。不清除背景,而是查看 ComponentUI.update,它由 paintComponent 调用。

覆盖:
Container 中的 update
参数:
g - 在其中进行绘制的 Graphics 上下文
另请参见:
paint(java.awt.Graphics), paintComponent(java.awt.Graphics), ComponentUI

paint

public void paint(Graphics g)
由 Swing 调用,以绘制组件。应用程序不应直接调用 paint,而是应该使用 repaint 方法来安排重绘组件。

此方法实际上将绘制工作委托给三个受保护的方法:paintComponentpaintBorderpaintChildren。按列出的顺序调用这些方法,以确保子组件出现在组件本身的顶部。一般而言,不应在分配给边框的 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)

printAll

public void printAll(Graphics g)
调用此方法以打印组件。此方法对该组件调用 print

覆盖:
Component 中的 printAll
参数:
g - 在其中进行绘制的 Graphics 上下文
另请参见:
print(java.awt.Graphics), printComponent(java.awt.Graphics), printBorder(java.awt.Graphics), printChildren(java.awt.Graphics)

print

public void print(Graphics g)
调用此方法以打印组件。此方法将导致对 printComponentprintBorderprintChildren 的调用。建议不重写此方法,而是重写前面提及的方法之一。此方法设置组件的状态,使得双缓冲区不被使用,例如直接在传入的 Graphics 上完成绘制。

覆盖:
Container 中的 print
参数:
g - 在其中进行绘制的 Graphics 上下文
另请参见:
printComponent(java.awt.Graphics), printBorder(java.awt.Graphics), printChildren(java.awt.Graphics)

printComponent

protected void printComponent(Graphics g)
在打印操作期间调用此方法。实现此方法以对该组件调用 paintComponent。如果要在打印时添加特殊的绘制行为,可重写此方法。

参数:
g - 在其中进行绘制的 Graphics 上下文
从以下版本开始:
1.3
另请参见:
print(java.awt.Graphics)

printChildren

protected void printChildren(Graphics g)
打印此组件的子组件。实现此方法以对该组件调用 paintChildren。如果希望以不同于绘制的方式打印子组件,则重写此方法。

参数:
g - 在其中进行绘制的 Graphics 上下文
从以下版本开始:
1.3
另请参见:
print(java.awt.Graphics)

printBorder

protected void printBorder(Graphics g)
打印该组件的边框。实现此方法以对该组件调用 paintBorder。如果要以和绘制该边框所不同的方式来打印边框,则重写此方法。

参数:
g - 在其中进行绘制的 Graphics 上下文
从以下版本开始:
1.3
另请参见:
print(java.awt.Graphics)

isPaintingTile

public boolean isPaintingTile()
如果该组件目前正在绘制 tile,则返回 true。如果此方法返回 true,则会为另一个 tile 再次调用 paint。如果没有绘制 tile,或者已绘制完最后一个 tile,则此方法返回 false。使用此方法可保持 tile 间可能需要的某个状态。

返回:
如果组件目前正在绘制 tile,则返回 true;否则返回 false

isManagingFocus

@Deprecated
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), SortingFocusTraversalPolicy

setNextFocusableComponent

@Deprecated
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

getNextFocusableComponent

@Deprecated
public Component getNextFocusableComponent()
已过时。 从 1.4 版本开始,由 FocusTraversalPolicy 取代。

在版本 1.4 中,重新设计了焦点子系统。有关更多信息,请参阅《The Java Tutorial》中的 How to Use the Focus Subsystem 一节。

返回由先前对此 JComponent 调用 setNextFocusableComponent(Component) 所设置的 Component

返回:
焦点遍历循环中应该跟随在此 JComponent 后的 Component,如果尚未显式地指定,则为 null
另请参见:
setNextFocusableComponent(java.awt.Component)

setRequestFocusEnabled

public void setRequestFocusEnabled(boolean requestFocusEnabled)
提供一个关于此 JComponent 是否应该获得焦点的提示。这只是一个提示,并且由使用者决定请求焦点是否遵守此属性。对于鼠标操作通常是遵守此属性的,但是对于键盘操作则并非如此。例如,在鼠标操作期间,外观可以在请求焦点前验证此属性是否为 true。如果不想在 JComponent 上按下鼠标以获得焦点,而是希望通过键盘遍历 JComponent,则要多次使用此方法。如果根本不想让此 JComponent 成为可聚焦的,则使用 setFocusable 方法。

有关更多信息,请参阅《The Java Tutorial》中的 How to Use the Focus Subsystem 一节。

参数:
requestFocusEnabled - 指示是否让此 JComponent 成为可聚焦的
另请参见:
Focus Specification, Component.setFocusable(boolean)

isRequestFocusEnabled

public boolean isRequestFocusEnabled()
如果此 JComponent 应该获得焦点,则返回 true;否则返回 false

有关更多信息,请参阅《The Java Tutorial》中的 How to Use the Focus Subsystem 一节。

返回:
如果此 component 应该获得焦点,则返回 true;否则返回 false
另请参见:
setRequestFocusEnabled(boolean), Focus Specification, Component.isFocusable()

requestFocus

public void requestFocus()
请求此 Component 获得输入焦点。有关此方法的完整描述,请参阅 Component.requestFocus()

注意,推荐不使用此方法,因为其行为是与平台相关的。我们建议使用 requestFocusInWindow()。若要了解有关焦点的更多信息,请参阅

覆盖:
Component 中的 requestFocus
从以下版本开始:
1.4
另请参见:
Component.requestFocusInWindow(), Component.requestFocusInWindow(boolean)

requestFocus

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
从以下版本开始:
1.4
另请参见:
Component.requestFocusInWindow(), Component.requestFocusInWindow(boolean)

requestFocusInWindow

public boolean requestFocusInWindow()
请求此 Component 获得输入焦点。有关此方法的完整描述,请参阅 Component.requestFocusInWindow()

如果需要了解有关焦点的更多信息,请参阅《The Java Tutorial》中的 How to Use the Focus Subsystem 一节。

覆盖:
Component 中的 requestFocusInWindow
返回:
如果焦点更改请求注定要失败,则返回 false;如果可能成功,则返回 true
从以下版本开始:
1.4
另请参见:
Component.requestFocusInWindow(), Component.requestFocusInWindow(boolean)

requestFocusInWindow

protected boolean requestFocusInWindow(boolean temporary)
请求此 Component 获得输入焦点。有关此方法的完整描述,请参阅 Component.requestFocusInWindow(boolean)

如果需要了解有关焦点的更多信息,请参阅

覆盖:
Component 中的 requestFocusInWindow
参数:
temporary - boolean 值,指示焦点更改是否为临时的
返回:
如果焦点更改请求注定要失败,则返回 false;如果可能成功,则返回 true
从以下版本开始:
1.4
另请参见:
Component.requestFocusInWindow(), Component.requestFocusInWindow(boolean)

grabFocus

public void grabFocus()
请求此 Component 获得输入焦点,并且此 Component 的顶层祖先成为获得焦点的 Window。此 component 对于所要许可的请求而言必须是可显示的、可见的和可聚焦的。

此方法由焦点实现所使用。客户端代码不应使用此方法;相反,它应该使用 requestFocusInWindow()

另请参见:
requestFocusInWindow()

setVerifyInputWhenFocusTarget

public void setVerifyInputWhenFocusTarget(boolean verifyInputWhenFocusTarget)
设置该值以指示是否在此组件请求焦点前,为当前的焦点所有者调用输入校验器。默认值为 true。对于像 Cancel 按钮或滚动条等组件可将该值设置为 false,这些组件应该是激活的,即使当前焦点所有者的输入未“通过”该组件输入校验器的检验时也是如此。

参数:
verifyInputWhenFocusTarget - verifyInputWhenFocusTarget 属性的值
从以下版本开始:
1.3
另请参见:
InputVerifier, setInputVerifier(javax.swing.InputVerifier), getInputVerifier(), getVerifyInputWhenFocusTarget()

getVerifyInputWhenFocusTarget

public boolean getVerifyInputWhenFocusTarget()
返回值指示是否在此组件请求焦点前,为当前的焦点所有者调用输入校验器。

返回:
verifyInputWhenFocusTarget 属性的值
从以下版本开始:
1.3
另请参见:
InputVerifier, setInputVerifier(javax.swing.InputVerifier), getInputVerifier(), setVerifyInputWhenFocusTarget(boolean)

getFontMetrics

public FontMetrics getFontMetrics(Font font)
获得指定 FontFontMetrics

覆盖:
Component 中的 getFontMetrics
参数:
font - 要获取其字体规格的字体
返回:
font 的字体规格
抛出:
NullPointerException - 如果 font 为 null
从以下版本开始:
1.5
另请参见:
Component.getFont(), Component.getPeer(), ComponentPeer.getFontMetrics(Font), Toolkit.getFontMetrics(Font)

setPreferredSize

public void setPreferredSize(Dimension preferredSize)
设置此组件的首选大小。如果 preferredSizenull,则要求 UI 提供首选大小。

覆盖:
Component 中的 setPreferredSize
参数:
preferredSize - 新的首选大小,或者为 null
另请参见:
Component.getPreferredSize(), Component.isPreferredSizeSet()

getPreferredSize

public Dimension getPreferredSize()
如果 preferredSize 已设置为非 null 值,则返回该值。如果 UI 委托的 getPreferredSize 方法返回非 null 值,则返回该值;否则服从该组件的布局管理器。

覆盖:
Container 中的 getPreferredSize
返回:
preferredSize 属性的值
另请参见:
setPreferredSize(java.awt.Dimension), ComponentUI

setMaximumSize

public void setMaximumSize(Dimension maximumSize)
将此组件的最大大小设置为一个常量值。对 getMaximumSize 的后续调用将始终返回此值;而不要求组件的 UI 计算它。将最大大小设置为 null 可还原默认的行为。

覆盖:
Component 中的 setMaximumSize
参数:
maximumSize - 一个包含所需最大允许大小的 Dimension
另请参见:
getMaximumSize()

getMaximumSize

public Dimension getMaximumSize()
如果已将最大大小设置为非 null 值,则返回该值。如果 UI 委托的 getMaximumSize 方法返回非 null 值,则返回该值;否则服从该组件的布局管理器。

覆盖:
Container 中的 getMaximumSize
返回:
maximumSize 属性的值
另请参见:
setMaximumSize(java.awt.Dimension), ComponentUI

setMinimumSize

public void setMinimumSize(Dimension minimumSize)
将此组件的最低大小设置为一个常量值。对 getMinimumSize 的后续调用将始终返回此值;不会要求组件的 UI 计算它。将最低大小设置为 null 可还原默认的行为。

覆盖:
Component 中的 setMinimumSize
参数:
minimumSize - 此组件新的最低大小
另请参见:
getMinimumSize()

getMinimumSize

public Dimension getMinimumSize()
如果已将最低大小设置为非 null 值,则返回该值。如果 UI 委托的 getMinimumSize 方法返回非 null 值,则返回该值;否则服从该组件的布局管理器。

覆盖:
Container 中的 getMinimumSize
返回:
minimumSize 属性的值
另请参见:
setMinimumSize(java.awt.Dimension), ComponentUI

contains

public boolean contains(int x,
                        int y)
为了进行鼠标处理,让 UI 委托来定义此组件的精确形状。

覆盖:
Component 中的 contains
参数:
x - 该点的 x 坐标
y - 该点的 y 坐标
返回:
如果此组件逻辑上包含 x,y,则返回 true
另请参见:
Component.contains(int, int), ComponentUI

setBorder

public void setBorder(Border border)
设置此组件的边框。Border 对象负责定义组件的 insets(直接对该组件重写所有 insets 设置),并且可选地呈现这些 insets 范围内的边框装饰。要为 swing 组件创建有装饰的和无装饰的区域(例如边距和填充),应该使用边框(而不是 insets)。在单个组件中可使用复合边框来嵌套多个边框。

虽然从技术上讲可以在继承自 JComponent 的所有对象上设置边框,但是很多标准 Swing 组件的外观实现无法很好地使用用户设置的边框。通常,如果希望在标准的 Swing 组件而不是 JPanelJLabel 上设置边框时,我们建议将该组件放入 JPanel 中,并在 JPanel 上设置边框。

这是一个 bound 属性。

参数:
border - 要为此组件呈现的边框
另请参见:
Border, CompoundBorder

getBorder

public Border getBorder()
返回此组件的边框,如果当前未设置边框,则返回 null

返回:
此组件的 border 对象
另请参见:
setBorder(javax.swing.border.Border)

getInsets

public Insets getInsets()
如果已在此组件上设置了边框,则返回该边框的 insets;否则调用 super.getInsets

覆盖:
Container 中的 getInsets
返回:
insets 属性的值
另请参见:
setBorder(javax.swing.border.Border)

getInsets

public Insets getInsets(Insets insets)
返回包含此组件 inset 值的 Insets 对象。如有可能,将重用传入的 Insets 对象。但是调用这些方法不能假定将返回相同的对象。重写此对象内所有现有值。如果 insets 为 null,则此方法将分配一个新的 insets。

参数:
insets - Insets 对象,它可以被重用
返回:
Insets 对象
另请参见:
getInsets()

getAlignmentY

public float getAlignmentY()
重写 Container.getAlignmentY 以返回水平对齐方式。

覆盖:
Container 中的 getAlignmentY
返回:
alignmentY 属性的值
另请参见:
setAlignmentY(float), Component.getAlignmentY()

setAlignmentY

public void setAlignmentY(float alignmentY)
设置水平对齐方式。

参数:
alignmentY - 新的水平对齐方式
另请参见:
getAlignmentY()

getAlignmentX

public float getAlignmentX()
重写 Container.getAlignmentX 以返回垂直对齐方式。

覆盖:
Container 中的 getAlignmentX
返回:
alignmentX 属性的值
另请参见:
setAlignmentX(float), Component.getAlignmentX()

setAlignmentX

public void setAlignmentX(float alignmentX)
设置垂直对齐方式。

参数:
alignmentX - 新的垂直对齐方式
另请参见:
getAlignmentX()

setInputVerifier

public void setInputVerifier(InputVerifier inputVerifier)
设置此组件的输入校验器。

参数:
inputVerifier - 新的输入校验器
从以下版本开始:
1.3
另请参见:
InputVerifier

getInputVerifier

public InputVerifier getInputVerifier()
返回此组件的输入校验器。

返回:
inputVerifier 属性
从以下版本开始:
1.3
另请参见:
InputVerifier

getGraphics

public Graphics getGraphics()
返回此组件的图形上下文,该上下文允许您绘制组件。使用此方法可获得一个 Graphics 对象,然后在该对象上调用操作,以便绘制组件。

覆盖:
Component 中的 getGraphics
返回:
此组件的图形上下文
另请参见:
Component.paint(java.awt.Graphics)

setDebugGraphicsOptions

public void setDebugGraphicsOptions(int debugOptions)
启用或禁用与组件或其某个子组件内执行的每个图形操作有关的诊断信息。

参数:
debugOptions - 确定组件应该如何显示信息;为下列选项之一:
  • DebugGraphics.LOG_OPTION - 打印文本消息。
  • DebugGraphics.FLASH_OPTION - 绘制的内容闪烁多次。
  • DebugGraphics.BUFFERED_OPTION - 创建一个 ExternalWindow,显示在 View 的脱屏缓冲区上执行的操作。
  • DebugGraphics.NONE_OPTION 禁用调试。
  • 值 0 不会更改该调试选项。
当前值是 debugOptions 按位或运算的结果

getDebugGraphicsOptions

public int getDebugGraphicsOptions()
返回图形调试的状态。

返回:
零标志或下列选项按位或运算的结果:
  • DebugGraphics.LOG_OPTION - 打印文本消息。
  • DebugGraphics.FLASH_OPTION - 绘制的内容闪烁多次。
  • DebugGraphics.BUFFERED_OPTION - 创建一个 ExternalWindow,显示在 View 的脱屏缓冲区上执行的操作。
  • DebugGraphics.NONE_OPTION 禁用调试。
  • 值 0 不会更改该调试选项。
另请参见:
setDebugGraphicsOptions(int)

registerKeyboardAction

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 经过了验证,则调用 anActionKeyStroke 对象定义了键盘键和一个或多个组合键(alt、shift、ctrl、meta)的特定组合。

aCommand 将在传递的事件(如果指定了事件)中进行设置。

aCondition 可以为:

WHEN_FOCUSED
仅在击键发生、同时组件具有焦点时才调用该操作。
WHEN_IN_FOCUSED_WINDOW
当击键发生、同时组件具有焦点时,或者组件处于具有焦点的窗口中时调用该操作。注意,该组件无需是该窗口的直接子级,它可以处于窗口包含层次结构中的任意位置。换句话说,只要窗口中的任意 组件具有焦点,就调用向此组件注册的操作。
WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
当击键发生、同时组件具有焦点时,或者该组件是具有焦点的组件的祖先时调用该操作。

这种击键和条件的组合允许您为指定的击键+组合键组合定义高级别(语义)的操作事件(使用 KeyStroke 类),并导向具有焦点的组件的父组件或子组件,或者该组件本身。换句话说,在所有的组件层次结构中,可将任意的键组合导向层次结构中的适当组件,并调用具体的方法(通常通过适配器对象的方式)。

如果已经使用相同的 charCode 和组合键为接收容器注册了某个 action,则 anAction 将取代该 action。

参数:
anAction - 要注册的 Action
aCommand - 要在传递的事件中设置的命令
aKeyStroke - 与操作绑定的 KeyStroke
aCondition - 符合的条件,参见上述内容
另请参见:
KeyStroke

registerKeyboardAction

public void registerKeyboardAction(ActionListener anAction,
                                   KeyStroke aKeyStroke,
                                   int aCondition)
此方法现在已过时,对于类似的操作,请结合使用 getActionMap()getInputMap()


unregisterKeyboardAction

public void unregisterKeyboardAction(KeyStroke aKeyStroke)
此方法现在已过时。要注销现有绑定,可以从 ActionMap/InputMap 中移除该绑定,或者在 InputMap 中放置一个虚拟(dummy)绑定。从 InputMap 中移除绑定允许父 InputMap 中的绑定处于激活状态,而在 InputMap 中放置一个 dummy 绑定则可以有效地禁止发生绑定。

注销一个键盘操作。此操作将从 ActionMap(如果存在)和 InputMap 中移除绑定。


getRegisteredKeyStrokes

public KeyStroke[] getRegisteredKeyStrokes()
返回启动已注册操作的 KeyStrokes

返回:
KeyStroke 对象数组
另请参见:
registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)

getConditionForKeyStroke

public int getConditionForKeyStroke(KeyStroke aKeyStroke)
返回确定是否执行已注册动作 (action) 的条件,以响应指定的快捷键事件。

对于 Java 2 平台 v1.3,一个 KeyStroke 可与多个条件相关联。例如,'a' 可以和两个条件 WHEN_FOCUSEDWHEN_IN_FOCUSED_WINDOW 绑定。

返回:
操作-击键条件

getActionForKeyStroke

public ActionListener getActionForKeyStroke(KeyStroke aKeyStroke)
返回对象,该对象执行针对给定击键而注册的操作。

返回:
击键发生时所调用的 ActionListener 对象

resetKeyboardActions

public void resetKeyboardActions()
取消首层 InputMapsActionMap 中的所有绑定。此操作可以移除所有的本地绑定,并允许保留父 InputMap/ActionMaps 中所定义的绑定(通常在第二层定义 UI)。


setInputMap

public final void setInputMap(int condition,
                              InputMap map)
设置在 mapcondition 条件下要使用的 InputMapnull 意味着不想使用任何绑定(包括来自 UI 的绑定)。这不会重新安装 UI InputMap(如果已经有一个)。condition 具有下列某个值: 如果 conditionWHEN_IN_FOCUSED_WINDOW 并且 map 不是 ComponentInputMap,则抛出 IllegalArgumentException。类似地,如果 condition 不是上面列出的某个值,则抛出 IllegalArgumentException

参数:
condition - 上面所列的某个值
map - 为给定条件所使用的 InputMap
抛出:
IllegalArgumentException - 如果 conditionWHEN_IN_FOCUSED_WINDOW 并且 map 不是 ComponentInputMap 的实例;或者 condition 不是上面指定的某个合法值
从以下版本开始:
1.3

getInputMap

public final InputMap getInputMap(int condition)
返回 condition 期间使用的 InputMap

参数:
condition - WHEN_IN_FOCUSED_WINDOW、WHEN_FOCUSED、WHEN_ANCESTOR_OF_FOCUSED_COMPONENT 之一
返回:
指定 conditionInputMap
从以下版本开始:
1.3

getInputMap

public final InputMap getInputMap()
返回组件具有焦点时所使用的 InputMap。这是 getInputMap(WHEN_FOCUSED) 的一个便捷方法。

返回:
组件具有焦点时所使用的 InputMap
从以下版本开始:
JDK1.3

setActionMap

public final void setActionMap(ActionMap am)
ActionMap 设置为 am。这不会根据 UI(如果有)将 am 的父级也设置成 ActionMap,而是由调用方决定是否这样做。

参数:
am - 新的 ActionMap
从以下版本开始:
1.3

getActionMap

public final ActionMap getActionMap()
返回用于确定为特定的 KeyStroke 绑定激发何种 ActionActionMap。除非另行设置,否则返回的 ActionMap 根据 UI 设置确定作为其父级的 ActionMap

返回:
包含键/操作绑定的 ActionMap
从以下版本开始:
1.3

requestDefaultFocus

@Deprecated
public boolean requestDefaultFocus()
已过时。 从 1.4 版本开始,由 FocusTraversalPolicy.getDefaultComponent(Container).requestFocus() 取代

在版本 1.4 中,重新设计了焦点子系统。有关更多信息,请参阅《The Java Tutorial》中的 How to Use the Focus Subsystem 一节。

请求此 JComponentFocusTraversalPolicy 的默认 Component 上的焦点。如果此 JComponent 是焦点循环根,则使用其 FocusTraversalPolicy。否则,使用此 JComponent 的焦点循环根祖先的 FocusTraversalPolicy

另请参见:
FocusTraversalPolicy.getDefaultComponent(java.awt.Container)

setVisible

public void setVisible(boolean aFlag)
使该组件可见或不可见。重写 Component.setVisible

覆盖:
Component 中的 setVisible
参数:
aFlag - true 使该组件可见;false 使其不可见
另请参见:
Component.isVisible()

setEnabled

public void setEnabled(boolean enabled)
设置是否启用此组件。已启用的组件可能响应用户输入,而未启用的组件则无法响应用户输入。可以在禁用某些组件时更改其可视化表现形式,以向用户提供反馈,说明其无法接受输入。

注:禁用某个组件并不禁用其子组件。

注:禁用轻量组件不会阻止其接收 MouseEvents。

覆盖:
Component 中的 setEnabled
参数:
enabled - 如果应该启用此组件,则为 true;否则为 false
另请参见:
Component.isEnabled(), Component.isLightweight()

setForeground

public void setForeground(Color fg)
设置此组件的前景色。

覆盖:
Component 中的 setForeground
参数:
fg - 所需的前景 Color
另请参见:
Component.getForeground()

setBackground

public void setBackground(Color bg)
设置此组件的背景色。

覆盖:
Component 中的 setBackground
参数:
bg - 所需的背景 Color
另请参见:
Component.getBackground()

setFont

public void setFont(Font font)
设置此组件的字体。

覆盖:
Container 中的 setFont
参数:
font - 此组件所需的 Font
另请参见:
Component.getFont()

getDefaultLocale

public static Locale getDefaultLocale()
返回在创建时,用于初始化每个 JComponent 的语言环境属性的默认语言环境。 默认的语言环境具有 "AppContext" 范围,所以 applet(以及可能在单个 VM 中运行的多个轻量级应用程序)可有其自己的设置。applet 可以安全地更改其默认的语言环境,因为它不会影响其他 applet(或浏览器)。

返回:
默认的 Locale
从以下版本开始:
1.4
另请参见:
setDefaultLocale(java.util.Locale), Component.getLocale(), Component.setLocale(java.util.Locale)

setDefaultLocale

public static void setDefaultLocale(Locale l)
设置在创建时,用于初始化每个 JComponent 的语言环境属性的默认语言环境。初始值是 VM 的默认语言环境。 默认的语言环境具有 "AppContext" 范围,所以 applet(以及可能在单个 VM 中运行的多个轻量级应用程序)可有其自己的设置。applet 可以安全地更改其默认的语言环境,因为它不会影响其他 applet(或浏览器)。

参数:
l - 所需的默认 Locale,用于新的组件。
从以下版本开始:
1.4
另请参见:
getDefaultLocale(), Component.getLocale(), Component.setLocale(java.util.Locale)

processComponentKeyEvent

protected void processComponentKeyEvent(KeyEvent e)
处理该组件本身可识别的所有键事件。在焦点管理器和所有相关侦听器可以监听事件后调用此方法。仅在事件尚未被使用时才调用此方法。在键盘 UI 逻辑之前调用此方法。

实现此方法不执行任何操作。如果子类本身处理某些键事件,则这些子类通常重写此方法。应该在处理事件后使用该事件。


processKeyEvent

protected void processKeyEvent(KeyEvent e)
重写 processKeyEvent 以处理事件。

覆盖:
Component 中的 processKeyEvent
参数:
e - 按键事件
另请参见:
KeyEvent, KeyListener, KeyboardFocusManager, DefaultKeyboardFocusManager, Component.processEvent(java.awt.AWTEvent), Component.dispatchEvent(java.awt.AWTEvent), Component.addKeyListener(java.awt.event.KeyListener), Component.enableEvents(long), Component.isShowing()

processKeyBinding

protected boolean processKeyBinding(KeyStroke ks,
                                    KeyEvent e,
                                    int condition,
                                    boolean pressed)
调用此方法,以处理由于 KeyEvent e 而针对 ks 的键绑定。这会获得适当的 InputMap、获取绑定、从 ActionMap 获取操作,然后(如果找到该操作并且已启用该组件)调用 notifyAction 来通知该操作。

参数:
ks - 被查询的 KeyStroke
e - KeyEvent
condition - 为下列值之一:
  • JComponent.WHEN_FOCUSED
  • JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
  • JComponent.WHEN_IN_FOCUSED_WINDOW
pressed - 如果键被按下,则为 true
返回:
如果有针对操作的绑定并且已启用该操作,则返回 true
从以下版本开始:
1.3

setToolTipText

public void setToolTipText(String text)
注册要在工具提示中显示的文本。光标处于该组件上时显示该文本。

有关更多信息,请参阅《The Java Tutorial》中的 How to Use Tool Tips

参数:
text - 要显示的字符串,如果 text 为 null,则关闭此组件的工具提示
另请参见:
TOOL_TIP_TEXT_KEY

getToolTipText

public String getToolTipText()
返回通过 setToolTipText 所设置的工具提示字符串。

返回:
工具提示文本
另请参见:
TOOL_TIP_TEXT_KEY

getToolTipText

public String getToolTipText(MouseEvent event)
返回用作 event 的工具提示的字符串。默认情况下,此方法返回使用 setToolTipText 所设置的任意字符串。如果组件提供了更广泛的 API,以支持不同位置处的不同工具提示,则应重写此方法。


getToolTipLocation

public Point getToolTipLocation(MouseEvent event)
返回工具提示在此组件坐标系统中的位置。如果返回 null,则 Swing 将选择某个位置。默认实现返回 null

参数:
event - 导致 ToolTipManager 显示工具提示的 MouseEvent
返回:
始终返回 null

getPopupLocation

public Point getPopupLocation(MouseEvent event)
返回在此组件坐标系统中显示弹出式菜单的首选位置。由外观来决定是否遵守此属性,某些外观可能选择忽略它。如果返回 null,则外观将选择一个合适的位置。

参数:
event - 触发显示弹出式菜单的 MouseEvent,如果不是因鼠标事件而显示弹出式菜单,则为 null
返回:
显示 JPopupMenu 的位置。
从以下版本开始:
1.5

createToolTip

public JToolTip createToolTip()
返回用于显示工具提示的 JToolTip 实例。组件通常不重写此方法,但是可将其用于以不同的方式显示不同的工具提示。

返回:
用于显示此工具提示的 JToolTip

scrollRectToVisible

public void scrollRectToVisible(Rectangle aRect)
scrollRectToVisible() 消息转发到 JComponent 的父组件。可执行该请求的组件(如 JViewport)会重写此方法并执行滚动。

参数:
aRect - 可见的 Rectangle
另请参见:
JViewport

setAutoscrolls

public void setAutoscrolls(boolean autoscrolls)
设置 autoscrolls 属性。如果为 true,则在将鼠标拖动到组件的边界外并且鼠标移动已暂停(但是继续按下鼠标按键)时,合成地生成鼠标拖动事件。该合成事件使得拖动操作在跨越组件的边界时所建立的方向上恢复。支持自动滚动的组件必须处理 mouseDragged 事件,方法是调用带有一个包含鼠标事件位置的矩形的 scrollRectToVisible。所有支持项选择以及通常在 JScrollPaneJTableJListJTreeJTextAreaJEditorPane)中显示的 Swing 组件都已经以这种方式处理了鼠标拖动事件。要在任何其他组件中启用自动滚动,可添加一个调用 scrollRectToVisible 的鼠标移动侦听器。例如,给定 JPanelmyPanel
 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

getAutoscrolls

public boolean getAutoscrolls()
获得 autoscrolls 属性。

返回:
autoscrolls 属性的值
另请参见:
JViewport, setAutoscrolls(boolean)

setTransferHandler

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 一节。

参数:
newHandler - 在组件之间传输数据的机制
从以下版本开始:
1.4
另请参见:
TransferHandler, getTransferHandler()

getTransferHandler

public TransferHandler getTransferHandler()
获取 transferHandler 属性。

返回:
transferHandler 属性的值
从以下版本开始:
1.4
另请参见:
TransferHandler, setTransferHandler(javax.swing.TransferHandler)

processMouseEvent

protected void processMouseEvent(MouseEvent e)
处理此组件上发生的鼠标事件,方法是将其调度到任意已注册的 MouseListener 对象,有关此方法的完整描述,请参阅 Component.processMouseEvent(MouseEvent)

覆盖:
Component 中的 processMouseEvent
参数:
e - 鼠标事件
从以下版本开始:
1.5
另请参见:
Component.processMouseEvent(java.awt.event.MouseEvent)

processMouseMotionEvent

protected void processMouseMotionEvent(MouseEvent e)
处理鼠标移动事件,如 MouseEvent.MOUSE_DRAGGED。

覆盖:
Component 中的 processMouseMotionEvent
参数:
e - the MouseEvent
另请参见:
MouseEvent

enable

@Deprecated
public void enable()
已过时。 从 JDK version 1.1 开始,由 java.awt.Component.setEnabled(boolean) 取代。

覆盖:
Component 中的 enable

disable

@Deprecated
public void disable()
已过时。 从 JDK version 1.1 开始,由 java.awt.Component.setEnabled(boolean) 取代。

覆盖:
Component 中的 disable

getAccessibleContext

public AccessibleContext getAccessibleContext()
返回与此 JComponent 关联的 AccessibleContext。此基类所实现的方法返回 null。扩展 JComponent 的类应该实现此方法,以返回与该子类关联的 AccessibleContext

覆盖:
Component 中的 getAccessibleContext
返回:
JComponentAccessibleContext

getClientProperty

public final Object getClientProperty(Object key)
返回具有指定键的属性值。只有通过 putClientProperty 添加的属性才返回非 null 值。

参数:
key - 查询的内容
返回:
此属性的值,或者为 null
另请参见:
putClientProperty(java.lang.Object, java.lang.Object)

putClientProperty

public final void putClientProperty(Object key,
                                    Object value)
向此组件添加任意的键/值“客户端属性”。

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)

setFocusTraversalKeys

public void setFocusTraversalKeys(int id,
                                  Set<? extends AWTKeyStroke> keystrokes)
设置针对此 Component 的给定遍历操作的焦点遍历键。有关此方法的完整描述,请参阅 Component.setFocusTraversalKeys(int, java.util.Set)

覆盖:
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 的另一个焦点遍历操作
从以下版本开始:
1.5
另请参见:
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS

isLightweightComponent

public static boolean isLightweightComponent(Component c)
如果此组件是轻量的(也就是它没有本机窗口系统同位体),则返回 true。

返回:
如果此组件是轻量的,则返回 true

reshape

@Deprecated
public void reshape(int x,
                               int y,
                               int w,
                               int h)
已过时。 从 JDK 5 开始,由 Component.setBounds(int, int, int, int) 取代。

移动此组件并调整其大小。

覆盖:
Component 中的 reshape
参数:
x - 新的水平位置
y - 新的垂直位置
w - 新的宽度
h - 新的高度
另请参见:
Component.setBounds(int, int, int, int)

getBounds

public Rectangle getBounds(Rectangle rv)
将此组件的边界存储到“返回值”rv 中并返回 rv。如果 rvnull,则分配一个新的 Rectangle。如果调用方不希望在堆上分配一个新的 Rectangle 对象,则此版本的 getBounds 是很有用的。

覆盖:
Component 中的 getBounds
参数:
rv - 返回值,被修改为该组件的边界
返回:
rv;如果 rvnull,则返回新创建的、具有此组件边界的 Rectangle

getSize

public Dimension getSize(Dimension rv)
将此组件的宽度/高度存储到“返回值”rv 中并返回 rv。如果 rvnull,则分配一个新的 Dimension 对象。如果调用方不希望在堆上分配一个新的 Dimension 对象时,此版本的 getSize 是很有用的。

覆盖:
Component 中的 getSize
参数:
rv - 返回值,被修改为该组件的大小
返回:
rv

getLocation

public Point getLocation(Point rv)
将此组件的 x,y 原点存储到“返回值”rv 中并返回 rv。如果 rvnull,则分配一个新的 Point。如果调用方不希望在堆上分配一个新的 Point 对象,则此版本的 getLocation 是很有用的。

覆盖:
Component 中的 getLocation
参数:
rv - 返回值,被修改为该组件的位置
返回:
rv

getX

public int getX()
返回组件原点的当前 x 坐标。此方法优于 component.getBounds().xcomponent.getLocation().x,因为它不会导致任何堆分配。

覆盖:
Component 中的 getX
返回:
组件原点的当前 x 坐标

getY

public int getY()
返回组件原点的当前 y 坐标。此方法优于 component.getBounds().ycomponent.getLocation().y,因为它不会导致任何堆分配。

覆盖:
Component 中的 getY
返回:
组件原点的当前 y 坐标

getWidth

public int getWidth()
返回此组件的当前宽度。此方法优于 component.getBounds().widthcomponent.getSize().width,因为它不会导致任何堆分配。

覆盖:
Component 中的 getWidth
返回:
此组件的当前宽度

getHeight

public int getHeight()
返回此组件的当前高度。此方法优于 component.getBounds().heightcomponent.getSize().height,因为它不会导致任何堆分配。

覆盖:
Component 中的 getHeight
返回:
此组件的当前高度

isOpaque

public boolean isOpaque()
如果此组件是完全不透明的,则返回 true。

不透明组件将每个像素绘制在其矩形边界内。透明的组件则仅绘制其某些像素或根本不绘制任何像素,允许其下面的像素“透视出来”。因此,没有完全绘制其像素的组件则提供了一定程度的透明度。

保证总是完全绘制其内容的子类应该重写此方法并返回 true。

覆盖:
Component 中的 isOpaque
返回:
如果此组件是完全不透明的,则返回 true
另请参见:
setOpaque(boolean)

setOpaque

public void setOpaque(boolean isOpaque)
如果为 true,则该组件绘制其边界内的所有像素。否则该组件可能不绘制其某些或所有像素,从而允许其下面的像素透视出来。

对于 JComponent 而言,此属性的默认值是 false。但是对于大多数标准的 JComponent 子类(如 JButtonJTree),此属性的默认值是和外观相关的。

参数:
isOpaque - 如果此组件应该是透明的,则为 true
另请参见:
isOpaque()

computeVisibleRect

public void computeVisibleRect(Rectangle visibleRect)
返回该 Component 的“可见 rect 矩形”,即此组件及其所有祖先的可见矩形的交集。返回值存储在 visibleRect 中。

参数:
visibleRect - 根据此组件及其所有祖先的所有可见矩形交集而计算出的 Rectangle,这是此方法的返回值
另请参见:
getVisibleRect()

getVisibleRect

public Rectangle getVisibleRect()
返回该 Component 的“可见矩形”,即此组件的可见矩形 new Rectangle(0, 0, getWidth(), getHeight()) 及其所有祖先的可见矩形的交集。

返回:
可见矩形

firePropertyChange

public void firePropertyChange(String propertyName,
                               boolean oldValue,
                               boolean newValue)
支持报告 bound 属性的布尔属性的更改。当更改了 bound 属性,并且向所有已注册的 PropertyChangeListeners 发送相应的 PropertyChangeEvent 时可以调用此方法。

覆盖:
Component 中的 firePropertyChange
参数:
propertyName - 其值已更改的属性
oldValue - 该属性以前的值
newValue - 该属性的新值

firePropertyChange

public void firePropertyChange(String propertyName,
                               int oldValue,
                               int newValue)
支持报告 bound 属性的整数属性的更改。当更改了 bound 属性,并且向所有已注册的 PropertyChangeListeners 发送相应的 PropertyChangeEvent 时可以调用此方法。

覆盖:
Component 中的 firePropertyChange
参数:
propertyName - 其值已更改的属性
oldValue - 该属性以前的值
newValue - 该属性的新值

firePropertyChange

public void firePropertyChange(String propertyName,
                               char oldValue,
                               char newValue)
从类 Component 复制的描述
报告 bound 属性的改变。

覆盖:
Component 中的 firePropertyChange
参数:
propertyName - 已改变的属性的编程名称
oldValue - 该属性的旧值(char 类型)
newValue - 该属性的新值(char 类型)
另请参见:
Component.firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)

fireVetoableChange

protected void fireVetoableChange(String propertyName,
                                  Object oldValue,
                                  Object newValue)
                           throws PropertyVetoException
支持报告 constrained 属性的更改。当更改了 constrained 属性,并且向所有已注册的 VetoableChangeListeners 发送相应的 PropertyChangeEvent 时可以调用此方法。

参数:
propertyName - 对其进行侦听的属性名称
oldValue - 该属性的旧值
newValue - 该属性的新值
抛出:
PropertyVetoException - 组件禁止设置该属性时

addVetoableChangeListener

public void addVetoableChangeListener(VetoableChangeListener listener)
向侦听器列表添加一个 VetoableChangeListener。为所有属性注册该侦听器。

参数:
listener - 要添加的 VetoableChangeListener

removeVetoableChangeListener

public void removeVetoableChangeListener(VetoableChangeListener listener)
从侦听器列表移除一个 VetoableChangeListener。此方法移除了一个为所有属性注册的 VetoableChangeListener

参数:
listener - 要移除的 VetoableChangeListener

getVetoableChangeListeners

public VetoableChangeListener[] getVetoableChangeListeners()
返回在此组件上注册的所有可否决更改侦听器的数组。

返回:
组件的所有 VetoableChangeListener,如果当前没有注册的可否决更改侦听器,则返回一个空数组
从以下版本开始:
1.4
另请参见:
addVetoableChangeListener(java.beans.VetoableChangeListener), removeVetoableChangeListener(java.beans.VetoableChangeListener)

getTopLevelAncestor

public Container getTopLevelAncestor()
返回此组件的顶层祖先(包含的 WindowApplet),如果尚未将此组件添加到任意容器中,则返回 null

返回:
此组件所在的顶层 Container,如果不在任何容器中,则返回 null

addAncestorListener

public void addAncestorListener(AncestorListener listener)
注册 listener,这样当组件或其任意祖先移动,或者变得可见或不可见时该侦听器可接收 AncestorEvents。从包含层次结构中添加或移除组件或其祖先时,也发送这些事件。

参数:
listener - 要注册的 AncestorListener
另请参见:
AncestorEvent

removeAncestorListener

public void removeAncestorListener(AncestorListener listener)
注销 listener,使其不再接收 AncestorEvents

参数:
listener - 要移除的 AncestorListener
另请参见:
addAncestorListener(javax.swing.event.AncestorListener)

getAncestorListeners

public AncestorListener[] getAncestorListeners()
返回在此组件上注册的所有祖先侦听器的数组。

返回:
组件的所有 AncestorListener,如果当前没有注册的祖先侦听器,则返回一个空数组
从以下版本开始:
1.4
另请参见:
addAncestorListener(javax.swing.event.AncestorListener), removeAncestorListener(javax.swing.event.AncestorListener)

getListeners

public <T extends EventListener> T[] getListeners(Class<T> listenerType)
返回当前在此 JComponent 上注册为 FooListener 的所有对象组成的数组。FooListener 是使用 addFooListener 方法注册的。

可以使用 class 字面值来指定 listenerType 参数,如 FooListener.class。例如,可以使用以下代码来查询 JComponent c 的鼠标侦听器:

MouseListener[] mls = (MouseListener[])(c.getListeners(MouseListener.class));
如果不存在这样的侦听器,则此方法将返回一个空数组。

覆盖:
Container 中的 getListeners
参数:
listenerType - 所请求的侦听器类型;此参数应该指定一个从 java.util.EventListener 继承的接口
返回:
返回一个在此组件上作为 FooListener 注册的所有对象的数组,如果尚未添加这样的侦听器,则返回一个空数组
抛出:
ClassCastException - 如果 listenerType 未指定一个实现 java.util.EventListener 的类或接口
从以下版本开始:
1.3
另请参见:
getVetoableChangeListeners(), getAncestorListeners()

addNotify

public void addNotify()
通知此组件它现在已有了一个父组件。调用此方法时,通过 KeyboardAction 事件侦听器设置父组件链。

覆盖:
Container 中的 addNotify
另请参见:
registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)

removeNotify

public void removeNotify()
通知此组件它不再有父组件。调用此方法时,移除父组件链中所有已设置的 KeyboardAction

覆盖:
Container 中的 removeNotify
另请参见:
registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)

repaint

public void repaint(long tm,
                    int x,
                    int y,
                    int width,
                    int height)
如果要显示组件,则将指定的区域添加到脏区 (dirty region) 列表。调度完当前所有未完成的事件后重新绘制该组件。

覆盖:
Component 中的 repaint
参数:
tm - 不使用此参数
x - 脏区的 x 值
y - 脏区的 y 值
width - 脏区的宽度
height - 脏区的高度
另请参见:
Component.isShowing(), RepaintManager.addDirtyRegion(javax.swing.JComponent, int, int, int, int)

repaint

public void repaint(Rectangle r)
如果要显示该组件,则将指定的区域添加到脏区列表。调度完当前所有未完成的事件后重新绘制该组件。

参数:
r - 包含脏区的 Rectangle
另请参见:
Component.isShowing(), RepaintManager.addDirtyRegion(javax.swing.JComponent, int, int, int, int)

revalidate

public void revalidate()
支持推迟的自动布局。

调用 invalidate 并将此组件的 validateRoot 添加到需要验证的组件列表中。调度完当前所有未完成的事件后进行验证。换句话说,调用此方法后,将验证浏览此组件的包含层次结构时找到的第一个 validateRoot(如果有)。默认情况下,JRootPaneJScrollPaneJTextFieldisValidateRoot 返回 true。

当属性值更改,从而影响此组件的大小、位置或内部布局时,就对此组件自动调用此方法。这种自动更新不同于 AWT,因为通常来说,程序不再需要调用 validate 来获得要更新的 GUI 的内容。

另请参见:
Component.invalidate(), Container.validate(), isValidateRoot(), RepaintManager.addInvalidComponent(javax.swing.JComponent)

isValidateRoot

public boolean isValidateRoot()
如果此方法返回 true,则此组件的子组件调用 revalidate 将导致对从此根开始的整棵树进行验证。默认返回 false。JScrollPane 重写此方法并返回 true。

返回:
始终返回 false
另请参见:
revalidate(), Component.invalidate(), Container.validate()

isOptimizedDrawingEnabled

public boolean isOptimizedDrawingEnabled()
如果此组件平铺显示其子组件(也就是它可保证子组件不重叠),则返回 true。通常,在此情况下,重绘系统的效率非常高。无法作出此保证的 JComponent 子类(如 JLayeredPane)应该重写此方法以返回 false。

返回:
始终返回 true

paintImmediately

public void paintImmediately(int x,
                             int y,
                             int w,
                             int h)
立即绘制此组件及其子组件中与该区域重叠的指定区域。

极少需要调用此方法。在大多数情况下,调用 repaint 更为高效,repaint 会推迟实际的绘制并将多余的请求压缩到单个 paint 调用中。如果您需要在调度当前事件的同时更新显示,则此方法是有用的。

参数:
x - 要绘制区域的 x 值
y - 要绘制区域的 y 值
w - 要绘制区域的宽度
h - 要绘制区域的高度
另请参见:
repaint(long, int, int, int, int)

paintImmediately

public void paintImmediately(Rectangle r)
立即绘制指定的区域。

参数:
r - 包含要绘制区域的 Rectangle

setDoubleBuffered

public void setDoubleBuffered(boolean aFlag)
设置此组件是否应该使用缓冲区进行绘制。如果设置为 true,则此组件的所有绘制将在一个离屏绘制缓冲区内完成。然后将该离屏绘制缓冲区复制到屏幕上。Swing 绘制系统始终使用一个最大的双缓冲区。如果缓冲了某个 Component,并且还缓冲了它的某个祖先,则将使用该祖先缓冲区。

参数:
aFlag - 如果为 true,则设置此组件使用双缓冲区进行缓冲

isDoubleBuffered

public boolean isDoubleBuffered()
返回此组件是否应该使用缓冲区进行绘制。

覆盖:
Component 中的 isDoubleBuffered
返回:
如果此组件使用双缓冲区进行缓冲,则返回 true;否则返回 false

getRootPane

public JRootPane getRootPane()
返回此组件的 JRootPane 祖先。

返回:
包含此组件的 JRootPane,如果未找到 JRootPane,则为 null

paramString

protected String paramString()
返回此 JComponent 的字符串表示形式。此方法仅在进行调试的时候使用,对于各个实现,所返回字符串的内容和格式可能有所不同。返回的字符串可能为空,但不可能为 null

覆盖:
Container 中的 paramString
返回:
JComponent 的字符串表示形式

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策