添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
直接已知子类:
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 的字符串表示形式