|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
public abstract class JComponent
该类是除顶层容器外所有 Swing 组件的基类。要使用继承自 JComponent 的组件,必须将该组件置于一个根为顶层 Swing 容器的包含层次结构(containment hierarchy)中。顶层 Swing 容器(如 JFrame、JDialog 和 JApplet)是专门的组件,它们为其他 Swing 组件提供了绘制其自身的场所。有关包含层次结构的解释,请参阅《The Java Tutorial》中的 Swing Components and the Containment Hierarchy 一节。
JComponent 类提供:
ComponentUI 的对象。有关更多信息,请参阅《The Java Tutorial》中的 How to Set the Look and Feel 一节。
JComponent 包含 Accessible 接口中的所有方法,但是它实际上不实现该接口。由扩展 JComponent 的每个类负责实现该接口。
putClientProperty(java.lang.Object, java.lang.Object) 和 getClientProperty(java.lang.Object) 方法,可以将名称 - 对象对与继承自 JComponent 的任意对象相关联。
JComponent 及其子类记录了某些属性的默认值。例如,JTable 记录的默认行高为 16。每个具有 ComponentUI 的 JComponent 子类都将创建该 ComponentUI 作为其构造方法的一部分。为了提供特定的外观,每个 ComponentUI 都可以在创建它的 JComponent 上设置各种属性。例如,自定义的外观可能要求 JTable 的行高为 24 。而所记录的默认值是安装 ComponentUI 前的属性值。如果需要为特定的属性使用具体值,则应该显式地设置它。
在版本 1.4 中,重新设计了焦点子系统。有关更多信息,请参阅《The Java Tutorial》中的 How to Use the Focus Subsystem 一节。
警告:此类的已序列化对象与以后的 Swing 版本不兼容。当前序列化支持适用于短期存储,或适用于在运行相同 Swing 版本的应用程序之间进行 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 绑定激发何种 Action 的 ActionMap。 |
|
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)
获得指定 Font 的 FontMetrics。 |
|
Graphics |
getGraphics()
返回此组件的图形上下文,该上下文允许您绘制组件。 |
|
int |
getHeight()
返回此组件的当前高度。 |
|
boolean |
getInheritsPopupMenu()
如果从父组件继承 JPopupMenu,则返回 true。 |
|
InputMap |
getInputMap()
返回组件具有焦点时所使用的 InputMap。 |
|
InputMap |
getInputMap(int condition)
返回 condition 期间使用的 InputMap。 |
|
InputVerifier |
getInputVerifier()
返回此组件的输入校验器。 |
|
Insets |
getInsets()
如果已在此组件上设置了边框,则返回该边框的 insets;否则调用 super.getInsets。 |
|
Insets |
getInsets(Insets insets)
返回包含此组件 inset 值的 Insets 对象。 |
|
|
getListeners(Class<T> listenerType)
返回当前在此 JComponent 上注册为 FooListener 的所有对象组成的数组。 |
|
Point |
getLocation(Point rv)
将此组件的 x,y 原点存储到“返回值” rv 中并返回 rv。 |
|
Dimension |
getMaximumSize()
如果已将最大大小设置为非 null 值,则返回该值。 |
|
Dimension |
getMinimumSize()
如果已将最低大小设置为非 null 值,则返回该值。 |
|
Component |
getNextFocusableComponent()
已过时。 从 1.4 版本开始,由 FocusTraversalPolicy 取代。 |
|
Point |
getPopupLocation(MouseEvent event)
返回在此组件坐标系统中显示弹出式菜单的首选位置。 |
|
Dimension |
getPreferredSize()
如果 preferredSize 已设置为非 null 值,则返回该值。 |
|
KeyStroke[] |
getRegisteredKeyStrokes()
返回启动已注册操作的 KeyStrokes。 |
|
JRootPane |
getRootPane()
返回此组件的 JRootPane 祖先。 |
|
Dimension |
getSize(Dimension rv)
将此组件的宽度/高度存储到“返回值” rv 中并返回 rv。 |
|
Point |
getToolTipLocation(MouseEvent event)
返回工具提示在此组件坐标系统中的位置。 |
|
String |
getToolTipText()
返回通过 setToolTipText 所设置的工具提示字符串。 |
|
String |
getToolTipText(MouseEvent event)
返回用作 event 的工具提示的字符串。 |
|
Container |
getTopLevelAncestor()
返回此组件的顶层祖先(包含的 Window 或 Applet),如果尚未将此组件添加到任意容器中,则返回 null。 |
|
TransferHandler |
getTransferHandler()
获取 transferHandler 属性。 |
|
String |
getUIClassID()
返回用于查找 wing.plaf.ComponentUI 类(定义了此组件的外观)名称的 UIDefaults 键。 |
|
boolean |
getVerifyInputWhenFocusTarget()
返回值指示是否在此组件请求焦点前,为当前的焦点所有者调用输入校验器。 |
|
VetoableChangeListener[] |
getVetoableChangeListeners()
返回在此组件上注册的所有可否决更改侦听器的数组。 |
|
Rectangle |
getVisibleRect()
返回该 Component 的“可见矩形”,即此组件的可见矩形 new Rectangle(0, 0, getWidth(), getHeight()) 及其所有祖先的可见矩形的交集。 |
|
int |
getWidth()
返回此组件的当前宽度。 |
|
int |
getX()
返回组件原点的当前 x 坐标。 |
|
int |
getY()
返回组件原点的当前 y 坐标。 |
|
void |
grabFocus()
请求此 Component 获得输入焦点,并且此 Component 的顶层祖先成为获得焦点的 Window。 |
|
boolean |
isDoubleBuffered()
返回此组件是否应该使用缓冲区进行绘制。 |
|
static boolean |
isLightweightComponent(Component c)
如果此组件是轻量的(也就是它没有本机窗口系统同位体),则返回 true。 |
|
boolean |
isManagingFocus()
已过时。 从 1.4 版本开始,由 Component.setFocusTraversalKeys(int, Set) 和 Container.setFocusCycleRoot(boolean) 取代。 |
|
boolean |
isOpaque()
如果此组件是完全不透明的,则返回 true。 |
|
boolean |
isOptimizedDrawingEnabled()
如果此组件平铺显示其子组件(也就是它可保证子组件不重叠),则返回 true。 |
|
boolean |
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()
取消首层 InputMaps 和 ActionMap 中的所有绑定。 |
|
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)
设置此 JComponent 的 JPopupMenu。 |
|
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)
设置在 map 的 condition 条件下要使用的 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.lang.Object 继承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| 字段详细信息 |
|---|
protected transient ComponentUI ui
protected EventListenerList listenerList
public static final int WHEN_FOCUSED
registerKeyboardAction 的常量,意味着在组件获得焦点时应该调用该命令。
public static final int WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
registerKeyboardAction 的常量,意味着当接收组件是获得焦点的组件的祖先或者其本身就是获得焦点的组件时,应该调用该命令。
public static final int WHEN_IN_FOCUSED_WINDOW
registerKeyboardAction 的常量,意味着当接收的组件处于拥有焦点的窗口内或者其本身就是获得焦点的组件时,应该调用命令。
public static final int UNDEFINED_CONDITION
public static final String TOOL_TIP_TEXT_KEY
protected AccessibleContext accessibleContext
JComponent 关联的 AccessibleContext。
| 构造方法详细信息 |
|---|
public JComponent()
JComponent 构造方法。除调用 Container 构造方法外,此构造方法几乎不进行初始化工作。例如,初始布局管理器为 null。但是,它确实将组件的语言环境属性设置为 JComponent.getDefaultLocale 所返回的值。
getDefaultLocale()| 方法详细信息 |
|---|
public void setInheritsPopupMenu(boolean value)
JPopupMenu,那么 getComponentPopupMenu 是否应该委托给其父级。
此方法的默认值是 false,但是某些作为多个 JComponent 实现的 JComponent 子类可能将其设置为 true。
这是一个 bound 属性。
value - JPopupMenu 是否为继承的setComponentPopupMenu(javax.swing.JPopupMenu)public boolean getInheritsPopupMenu()
setComponentPopupMenu(javax.swing.JPopupMenu)public void setComponentPopupMenu(JPopupMenu popup)
JComponent 的 JPopupMenu。UI 负责注册绑定并添加必要的侦听器,这样可在恰当的时间显示 JPopupMenu。何时显示 JPopupMenu 取决于外观:有时可能在鼠标事件中显示它,有时则可能启用键绑定。
如果 popup 为 null,并且 getInheritsPopupMenu 返回 true,则将 getComponentPopupMenu 委托给父级。这将允许所有子组件继承父组件的 popupmenu。
这是一个 bound 属性。
popup - - 分配给此组件的弹出式内容,可能为 nullgetComponentPopupMenu()public JPopupMenu getComponentPopupMenu()
JPopupMenu。如果尚未给此组件分配 JPopupMenu 并且 getInheritsPopupMenu 为 true,则此方法返回 getParent().getComponentPopupMenu()(假定父级是有效的)。
JPopupMenu,如果未分配弹出式内容,则为 nullsetComponentPopupMenu(javax.swing.JPopupMenu)public void updateUI()
JComponent 的子类必须以如下方式重写此方法:
public void updateUI() {
setUI((SliderUI)UIManager.getUI(this);
}
setUI(javax.swing.plaf.ComponentUI),
UIManager.getLookAndFeel(),
UIManager.getUI(javax.swing.JComponent)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)public String getUIClassID()
wing.plaf.ComponentUI 类(定义了此组件的外观)名称的 UIDefaults 键。大多数应用程序无需调用此方法。支持可插入外观的 JComponent 子类应该重写此方法,以返回映射到定义其外观的 ComponentUI 子类的 ComponentUI 键。
ComponentUI 子类的 UIDefaults 键UIDefaults.getUI(javax.swing.JComponent)protected Graphics getComponentGraphics(Graphics g)
DebugGraphics,则根据需要创建一个新的 DebugGraphics 对象。否则只是配置指定 graphics 对象的前景和字体。
g - 初始的 Graphics 对象
Graphics 对象protected void paintComponent(Graphics g)
null,则调用该 UI 委托的 paint 方法。向该委托传递 Graphics 对象的副本,以保护其余的 paint 代码免遭不可取消的更改(例如 Graphics.translate)。
如果在子类中重写此方法,则不应该对传入到 Graphics 中的内容进行永久更改。例如,不应更改剪裁矩形 或修改转换。如果需要进行这些操作,您会发现根据传入的 Graphics 创建一个新 Graphics 并操作它会更容易一些。另外,如果不调用超类的实现,则必须遵守不透明属性,也就是如果此组件是不透明的,则必须以透明的颜色完全填充背景。如果不遵守不透明属性,则很可能看到可视化的人为内容。
传入的 Graphics 对象可能具有与该对象上已安装的标识转换所不同的转换。在这种情况下,如果多次应用其他转换,则可能得到不可预料的结果。
g - 要保护的 Graphics 对象paint(java.awt.Graphics),
ComponentUIprotected void paintChildren(Graphics g)
shouldUseBuffer 为 true,则所有的组件祖先都没有缓冲区,并且组件子级可以使用缓冲区(如果有)。否则,祖先具有当前正在使用的缓冲区,并且子组件应该不使用缓冲区进行绘制。
g - 在其中进行绘制的 Graphics 上下文paint(java.awt.Graphics),
Container.paint(java.awt.Graphics)protected void paintBorder(Graphics g)
如果在子类中重写此方法,则不应该对传入的 Graphics 进行永久更改。例如,不应更改剪贴区的 Rectangle 或修改转换。如果需要进行这些操作,您会发现根据传入的 Graphics 创建一个新 Graphics 并操作它会更容易一些。
g - 在其中进行绘制的 Graphics 上下文paint(java.awt.Graphics),
setBorder(javax.swing.border.Border)public void update(Graphics g)
paint。不清除背景,而是查看 ComponentUI.update,它由 paintComponent 调用。
Container 中的 updateg - 在其中进行绘制的 Graphics 上下文paint(java.awt.Graphics),
paintComponent(java.awt.Graphics),
ComponentUIpublic void paint(Graphics g)
paint,而是应该使用 repaint 方法来安排重绘组件。
此方法实际上将绘制工作委托给三个受保护的方法:paintComponent、paintBorder 和 paintChildren。按列出的顺序调用这些方法,以确保子组件出现在组件本身的顶部。一般而言,不应在分配给边框的 insets 区域绘制组件及其子组件。子类可以始终只重写此方法。只想特殊化 UI(外观)委托的 paint 方法的子类应该只重写 paintComponent。
Container 中的 paintg - 在其中进行绘制的 Graphics 上下文paintComponent(java.awt.Graphics),
paintBorder(java.awt.Graphics),
paintChildren(java.awt.Graphics),
getComponentGraphics(java.awt.Graphics),
repaint(long, int, int, int, int)public void printAll(Graphics g)
print。
Component 中的 printAllg - 在其中进行绘制的 Graphics 上下文print(java.awt.Graphics),
printComponent(java.awt.Graphics),
printBorder(java.awt.Graphics),
printChildren(java.awt.Graphics)public void print(Graphics g)
printComponent、printBorder 和 printChildren 的调用。建议不重写此方法,而是重写前面提及的方法之一。此方法设置组件的状态,使得双缓冲区不被使用,例如直接在传入的 Graphics 上完成绘制。
Container 中的 printg - 在其中进行绘制的 Graphics 上下文printComponent(java.awt.Graphics),
printBorder(java.awt.Graphics),
printChildren(java.awt.Graphics)protected void printComponent(Graphics g)
paintComponent。如果要在打印时添加特殊的绘制行为,可重写此方法。
g - 在其中进行绘制的 Graphics 上下文print(java.awt.Graphics)protected void printChildren(Graphics g)
paintChildren。如果希望以不同于绘制的方式打印子组件,则重写此方法。
g - 在其中进行绘制的 Graphics 上下文print(java.awt.Graphics)protected void printBorder(Graphics g)
paintBorder。如果要以和绘制该边框所不同的方式来打印边框,则重写此方法。
g - 在其中进行绘制的 Graphics 上下文print(java.awt.Graphics)public boolean isPaintingTile()
@Deprecated public boolean isManagingFocus()
Component.setFocusTraversalKeys(int, Set) 和 Container.setFocusCycleRoot(boolean) 取代。
将此 JComponent 的焦点遍历键更改为 CTRL+TAB 和 CTRL+SHIFT+TAB。另外在计算焦点遍历循环时,不要让 SortingFocusTraversalPolicy 将此 JComponent 的子组件考虑在内。
Component.setFocusTraversalKeys(int, java.util.Set extends java.awt.AWTKeyStroke>),
SortingFocusTraversalPolicy@Deprecated public void setNextFocusableComponent(Component aComponent)
FocusTraversalPolicy 取代
为此 JComponent 的焦点遍历循环重写默认的 FocusTraversalPolicy,方法是无条件地将指定的 Component 设置为循环中的下一个 Component,并将此 JComponent 设置为循环中指定 Component 的前一个 Component。
aComponent - 焦点遍历循环中应该跟随在此 JComponent 后的 ComponentgetNextFocusableComponent(),
FocusTraversalPolicy@Deprecated public Component getNextFocusableComponent()
FocusTraversalPolicy 取代。
返回由先前对此 JComponent 调用 setNextFocusableComponent(Component) 所设置的 Component。
JComponent 后的 Component,如果尚未显式地指定,则为 nullsetNextFocusableComponent(java.awt.Component)public void setRequestFocusEnabled(boolean requestFocusEnabled)
JComponent 是否应该获得焦点的提示。这只是一个提示,并且由使用者决定请求焦点是否遵守此属性。对于鼠标操作通常是遵守此属性的,但是对于键盘操作则并非如此。例如,在鼠标操作期间,外观可以在请求焦点前验证此属性是否为 true。如果不想在 JComponent 上按下鼠标以获得焦点,而是希望通过键盘遍历 JComponent,则要多次使用此方法。如果根本不想让此 JComponent 成为可聚焦的,则使用 setFocusable 方法。
有关更多信息,请参阅《The Java Tutorial》中的 How to Use the Focus Subsystem 一节。
requestFocusEnabled - 指示是否让此 JComponent 成为可聚焦的Component.setFocusable(boolean)public boolean isRequestFocusEnabled()
JComponent 应该获得焦点,则返回 true;否则返回 false。
有关更多信息,请参阅《The Java Tutorial》中的 How to Use the Focus Subsystem 一节。
true;否则返回 falsesetRequestFocusEnabled(boolean),
Focus Specification,
Component.isFocusable()public void requestFocus()
Component 获得输入焦点。有关此方法的完整描述,请参阅 Component.requestFocus()。
注意,推荐不使用此方法,因为其行为是与平台相关的。我们建议使用
requestFocusInWindow()。若要了解有关焦点的更多信息,请参阅
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 中的 requestFocustemporary - boolean 值,指示焦点更改是否为临时的
false;如果很可能成功,则返回 trueComponent.requestFocusInWindow(),
Component.requestFocusInWindow(boolean)public boolean requestFocusInWindow()
Component 获得输入焦点。有关此方法的完整描述,请参阅 Component.requestFocusInWindow()。
如果需要了解有关焦点的更多信息,请参阅《The Java Tutorial》中的 How to Use the Focus Subsystem 一节。
Component 中的 requestFocusInWindowfalse;如果可能成功,则返回 trueComponent.requestFocusInWindow(),
Component.requestFocusInWindow(boolean)protected boolean requestFocusInWindow(boolean temporary)
Component 获得输入焦点。有关此方法的完整描述,请参阅 Component.requestFocusInWindow(boolean)。
如果需要了解有关焦点的更多信息,请参阅
Component 中的 requestFocusInWindow
temporary - boolean 值,指示焦点更改是否为临时的
false;如果可能成功,则返回 trueComponent.requestFocusInWindow(),
Component.requestFocusInWindow(boolean)
public void grabFocus()
此方法由焦点实现所使用。客户端代码不应使用此方法;相反,它应该使用 requestFocusInWindow()。
requestFocusInWindow()public void setVerifyInputWhenFocusTarget(boolean verifyInputWhenFocusTarget)
verifyInputWhenFocusTarget - verifyInputWhenFocusTarget 属性的值InputVerifier,
setInputVerifier(javax.swing.InputVerifier),
getInputVerifier(),
getVerifyInputWhenFocusTarget()public boolean getVerifyInputWhenFocusTarget()
verifyInputWhenFocusTarget 属性的值InputVerifier,
setInputVerifier(javax.swing.InputVerifier),
getInputVerifier(),
setVerifyInputWhenFocusTarget(boolean)public FontMetrics getFontMetrics(Font font)
Font 的 FontMetrics。
Component 中的 getFontMetricsfont - 要获取其字体规格的字体
font 的字体规格
NullPointerException - 如果 font 为 nullComponent.getFont(),
Component.getPeer(),
ComponentPeer.getFontMetrics(Font),
Toolkit.getFontMetrics(Font)public void setPreferredSize(Dimension preferredSize)
preferredSize 为 null,则要求 UI 提供首选大小。
Component 中的 setPreferredSizepreferredSize - 新的首选大小,或者为 nullComponent.getPreferredSize(),
Component.isPreferredSizeSet()public Dimension getPreferredSize()
preferredSize 已设置为非 null 值,则返回该值。如果 UI 委托的 getPreferredSize 方法返回非 null 值,则返回该值;否则服从该组件的布局管理器。
Container 中的 getPreferredSizepreferredSize 属性的值setPreferredSize(java.awt.Dimension),
ComponentUIpublic void setMaximumSize(Dimension maximumSize)
getMaximumSize 的后续调用将始终返回此值;而不要求组件的 UI 计算它。将最大大小设置为 null 可还原默认的行为。
Component 中的 setMaximumSizemaximumSize - 一个包含所需最大允许大小的 DimensiongetMaximumSize()public Dimension getMaximumSize()
null 值,则返回该值。如果 UI 委托的 getMaximumSize 方法返回非 null 值,则返回该值;否则服从该组件的布局管理器。
Container 中的 getMaximumSizemaximumSize 属性的值setMaximumSize(java.awt.Dimension),
ComponentUIpublic void setMinimumSize(Dimension minimumSize)
getMinimumSize 的后续调用将始终返回此值;不会要求组件的 UI 计算它。将最低大小设置为 null 可还原默认的行为。
Component 中的 setMinimumSizeminimumSize - 此组件新的最低大小getMinimumSize()public Dimension getMinimumSize()
null 值,则返回该值。如果 UI 委托的 getMinimumSize 方法返回非 null 值,则返回该值;否则服从该组件的布局管理器。
Container 中的 getMinimumSizeminimumSize 属性的值setMinimumSize(java.awt.Dimension),
ComponentUI
public boolean contains(int x,
int y)
Component 中的 containsx - 该点的 x 坐标y - 该点的 y 坐标
Component.contains(int, int),
ComponentUIpublic void setBorder(Border border)
Border 对象负责定义组件的 insets(直接对该组件重写所有 insets 设置),并且可选地呈现这些 insets 范围内的边框装饰。要为 swing 组件创建有装饰的和无装饰的区域(例如边距和填充),应该使用边框(而不是 insets)。在单个组件中可使用复合边框来嵌套多个边框。
虽然从技术上讲可以在继承自 JComponent 的所有对象上设置边框,但是很多标准 Swing 组件的外观实现无法很好地使用用户设置的边框。通常,如果希望在标准的 Swing 组件而不是 JPanel 或 JLabel 上设置边框时,我们建议将该组件放入 JPanel 中,并在 JPanel 上设置边框。
这是一个 bound 属性。
border - 要为此组件呈现的边框Border,
CompoundBorderpublic Border getBorder()
null。
setBorder(javax.swing.border.Border)public Insets getInsets()
super.getInsets。
Container 中的 getInsetssetBorder(javax.swing.border.Border)public Insets getInsets(Insets insets)
Insets 对象。如有可能,将重用传入的 Insets 对象。但是调用这些方法不能假定将返回相同的对象。重写此对象内所有现有值。如果 insets 为 null,则此方法将分配一个新的 insets。
insets - Insets 对象,它可以被重用
Insets 对象getInsets()public float getAlignmentY()
Container.getAlignmentY 以返回水平对齐方式。
Container 中的 getAlignmentYalignmentY 属性的值setAlignmentY(float),
Component.getAlignmentY()public void setAlignmentY(float alignmentY)
alignmentY - 新的水平对齐方式getAlignmentY()public float getAlignmentX()
Container.getAlignmentX 以返回垂直对齐方式。
Container 中的 getAlignmentXalignmentX 属性的值setAlignmentX(float),
Component.getAlignmentX()public void setAlignmentX(float alignmentX)
alignmentX - 新的垂直对齐方式getAlignmentX()public void setInputVerifier(InputVerifier inputVerifier)
inputVerifier - 新的输入校验器InputVerifierpublic InputVerifier getInputVerifier()
inputVerifier 属性InputVerifierpublic Graphics getGraphics()
Graphics 对象,然后在该对象上调用操作,以便绘制组件。
Component 中的 getGraphicsComponent.paint(java.awt.Graphics)public void setDebugGraphicsOptions(int debugOptions)
debugOptions - 确定组件应该如何显示信息;为下列选项之一:
ExternalWindow,显示在 View 的脱屏缓冲区上执行的操作。
debugOptions 按位或运算的结果public int getDebugGraphicsOptions()
ExternalWindow,显示在 View 的脱屏缓冲区上执行的操作。
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 和组合键为接收容器注册了某个 action,则 anAction 将取代该 action。
anAction - 要注册的 ActionaCommand - 要在传递的事件中设置的命令aKeyStroke - 与操作绑定的 KeyStrokeaCondition - 符合的条件,参见上述内容KeyStroke
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 中移除绑定。
public KeyStroke[] getRegisteredKeyStrokes()
KeyStrokes。
KeyStroke 对象数组registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)public int getConditionForKeyStroke(KeyStroke aKeyStroke)
对于 Java 2 平台 v1.3,一个 KeyStroke 可与多个条件相关联。例如,'a' 可以和两个条件 WHEN_FOCUSED 和 WHEN_IN_FOCUSED_WINDOW 绑定。
public ActionListener getActionForKeyStroke(KeyStroke aKeyStroke)
ActionListener 对象public void resetKeyboardActions()
InputMaps 和 ActionMap 中的所有绑定。此操作可以移除所有的本地绑定,并允许保留父 InputMap/ActionMaps 中所定义的绑定(通常在第二层定义 UI)。
public final void setInputMap(int condition,
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 不是上面指定的某个合法值public final InputMap getInputMap(int condition)
condition 期间使用的 InputMap。
condition - WHEN_IN_FOCUSED_WINDOW、WHEN_FOCUSED、WHEN_ANCESTOR_OF_FOCUSED_COMPONENT 之一
condition 的 InputMappublic final InputMap getInputMap()
InputMap。这是 getInputMap(WHEN_FOCUSED) 的一个便捷方法。
InputMappublic final void setActionMap(ActionMap am)
ActionMap 设置为 am。这不会根据 UI(如果有)将 am 的父级也设置成 ActionMap,而是由调用方决定是否这样做。
am - 新的 ActionMappublic final ActionMap getActionMap()
KeyStroke 绑定激发何种 Action 的 ActionMap。除非另行设置,否则返回的 ActionMap 根据 UI 设置确定作为其父级的 ActionMap。
ActionMap@Deprecated public boolean requestDefaultFocus()
FocusTraversalPolicy.getDefaultComponent(Container).requestFocus() 取代
请求此 JComponent 的 FocusTraversalPolicy 的默认 Component 上的焦点。如果此 JComponent 是焦点循环根,则使用其 FocusTraversalPolicy。否则,使用此 JComponent 的焦点循环根祖先的 FocusTraversalPolicy。
FocusTraversalPolicy.getDefaultComponent(java.awt.Container)public void setVisible(boolean aFlag)
Component.setVisible。
Component 中的 setVisibleaFlag - true 使该组件可见;false 使其不可见Component.isVisible()public void setEnabled(boolean enabled)
注:禁用某个组件并不禁用其子组件。
注:禁用轻量组件不会阻止其接收 MouseEvents。
Component 中的 setEnabledenabled - 如果应该启用此组件,则为 true;否则为 falseComponent.isEnabled(),
Component.isLightweight()public void setForeground(Color fg)
Component 中的 setForegroundfg - 所需的前景 ColorComponent.getForeground()public void setBackground(Color bg)
Component 中的 setBackgroundbg - 所需的背景 ColorComponent.getBackground()public void setFont(Font font)
Container 中的 setFontfont - 此组件所需的 FontComponent.getFont()public static Locale getDefaultLocale()
Locale。setDefaultLocale(java.util.Locale),
Component.getLocale(),
Component.setLocale(java.util.Locale)public static void setDefaultLocale(Locale l)
l - 所需的默认 Locale,用于新的组件。getDefaultLocale(),
Component.getLocale(),
Component.setLocale(java.util.Locale)protected void processComponentKeyEvent(KeyEvent e)
实现此方法不执行任何操作。如果子类本身处理某些键事件,则这些子类通常重写此方法。应该在处理事件后使用该事件。
protected void processKeyEvent(KeyEvent e)
processKeyEvent 以处理事件。
Component 中的 processKeyEvente - 按键事件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()
protected boolean processKeyBinding(KeyStroke ks,
KeyEvent e,
int condition,
boolean pressed)
KeyEvent e 而针对 ks 的键绑定。这会获得适当的 InputMap、获取绑定、从 ActionMap 获取操作,然后(如果找到该操作并且已启用该组件)调用 notifyAction 来通知该操作。
ks - 被查询的 KeyStrokee - KeyEventcondition - 为下列值之一:
pressed - 如果键被按下,则为 true
public void setToolTipText(String text)
有关更多信息,请参阅《The Java Tutorial》中的 How to Use Tool Tips。
text - 要显示的字符串,如果 text 为 null,则关闭此组件的工具提示TOOL_TIP_TEXT_KEYpublic String getToolTipText()
setToolTipText 所设置的工具提示字符串。
TOOL_TIP_TEXT_KEYpublic String getToolTipText(MouseEvent event)
setToolTipText 所设置的任意字符串。如果组件提供了更广泛的 API,以支持不同位置处的不同工具提示,则应重写此方法。
public Point getToolTipLocation(MouseEvent event)
null,则 Swing 将选择某个位置。默认实现返回 null。
event - 导致 ToolTipManager 显示工具提示的 MouseEvent
nullpublic Point getPopupLocation(MouseEvent event)
null,则外观将选择一个合适的位置。
event - 触发显示弹出式菜单的 MouseEvent,如果不是因鼠标事件而显示弹出式菜单,则为 null
public JToolTip createToolTip()
JToolTip 实例。组件通常不重写此方法,但是可将其用于以不同的方式显示不同的工具提示。
JToolTippublic void scrollRectToVisible(Rectangle aRect)
scrollRectToVisible() 消息转发到 JComponent 的父组件。可执行该请求的组件(如 JViewport)会重写此方法并执行滚动。
aRect - 可见的 RectangleJViewportpublic 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,则在将鼠标拖动到组件的边界外并且继续按下鼠标按键时,生成合成鼠标拖动事件;否则为 falsegetAutoscrolls(),
JViewport,
JScrollPanepublic boolean getAutoscrolls()
autoscrolls 属性。
autoscrolls 属性的值JViewport,
setAutoscrolls(boolean)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 - 在组件之间传输数据的机制TransferHandler,
getTransferHandler()public TransferHandler getTransferHandler()
transferHandler 属性。
transferHandler 属性的值TransferHandler,
setTransferHandler(javax.swing.TransferHandler)protected void processMouseEvent(MouseEvent e)
MouseListener 对象,有关此方法的完整描述,请参阅 Component.processMouseEvent(MouseEvent)。
Component 中的 processMouseEvente - 鼠标事件Component.processMouseEvent(java.awt.event.MouseEvent)protected void processMouseMotionEvent(MouseEvent e)
Component 中的 processMouseMotionEvente - the MouseEventMouseEvent@Deprecated public void enable()
java.awt.Component.setEnabled(boolean) 取代。
Component 中的 enable@Deprecated public void disable()
java.awt.Component.setEnabled(boolean) 取代。
Component 中的 disablepublic AccessibleContext getAccessibleContext()
JComponent 关联的 AccessibleContext。此基类所实现的方法返回 null。扩展 JComponent 的类应该实现此方法,以返回与该子类关联的 AccessibleContext。
Component 中的 getAccessibleContextJComponent 的 AccessibleContextpublic final Object getClientProperty(Object key)
putClientProperty 添加的属性才返回非 null 值。
key - 查询的内容
nullputClientProperty(java.lang.Object, java.lang.Object)
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)
public void setFocusTraversalKeys(int id,
Set<? extends AWTKeyStroke> keystrokes)
Component.setFocusTraversalKeys(int, java.util.Set extends java.awt.AWTKeyStroke>)。
Container 中的 setFocusTraversalKeysid - 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_KEYSpublic static boolean isLightweightComponent(Component c)
@Deprecated
public void reshape(int x,
int y,
int w,
int h)
Component.setBounds(int, int, int, int) 取代。
移动此组件并调整其大小。
Component 中的 reshapex - 新的水平位置y - 新的垂直位置w - 新的宽度h - 新的高度Component.setBounds(int, int, int, int)public Rectangle getBounds(Rectangle rv)
rv 中并返回 rv。如果 rv 为 null,则分配一个新的 Rectangle。如果调用方不希望在堆上分配一个新的 Rectangle 对象,则此版本的 getBounds 是很有用的。
Component 中的 getBoundsrv - 返回值,被修改为该组件的边界
rv;如果 rv 为 null,则返回新创建的、具有此组件边界的 Rectanglepublic Dimension getSize(Dimension rv)
rv 中并返回 rv。如果 rv 为 null,则分配一个新的 Dimension 对象。如果调用方不希望在堆上分配一个新的 Dimension 对象时,此版本的 getSize 是很有用的。
Component 中的 getSizerv - 返回值,被修改为该组件的大小
rvpublic Point getLocation(Point rv)
rv 中并返回 rv。如果 rv 为 null,则分配一个新的 Point。如果调用方不希望在堆上分配一个新的 Point 对象,则此版本的 getLocation 是很有用的。
Component 中的 getLocationrv - 返回值,被修改为该组件的位置
rvpublic int getX()
component.getBounds().x 或 component.getLocation().x,因为它不会导致任何堆分配。
Component 中的 getXpublic int getY()
component.getBounds().y 或 component.getLocation().y,因为它不会导致任何堆分配。
Component 中的 getYpublic int getWidth()
component.getBounds().width 或 component.getSize().width,因为它不会导致任何堆分配。
Component 中的 getWidthpublic int getHeight()
component.getBounds().height 或 component.getSize().height,因为它不会导致任何堆分配。
Component 中的 getHeightpublic boolean isOpaque()
不透明组件将每个像素绘制在其矩形边界内。透明的组件则仅绘制其某些像素或根本不绘制任何像素,允许其下面的像素“透视出来”。因此,没有完全绘制其像素的组件则提供了一定程度的透明度。
保证总是完全绘制其内容的子类应该重写此方法并返回 true。
Component 中的 isOpaquesetOpaque(boolean)public void setOpaque(boolean isOpaque)
对于 JComponent 而言,此属性的默认值是 false。但是对于大多数标准的 JComponent 子类(如 JButton 和 JTree),此属性的默认值是和外观相关的。
isOpaque - 如果此组件应该是透明的,则为 trueisOpaque()public void computeVisibleRect(Rectangle visibleRect)
Component 的“可见 rect 矩形”,即此组件及其所有祖先的可见矩形的交集。返回值存储在 visibleRect 中。
visibleRect - 根据此组件及其所有祖先的所有可见矩形交集而计算出的 Rectangle,这是此方法的返回值getVisibleRect()public Rectangle getVisibleRect()
Component 的“可见矩形”,即此组件的可见矩形 new Rectangle(0, 0, getWidth(), getHeight()) 及其所有祖先的可见矩形的交集。
public void firePropertyChange(String propertyName,
boolean oldValue,
boolean newValue)
Component 中的 firePropertyChangepropertyName - 其值已更改的属性oldValue - 该属性以前的值newValue - 该属性的新值
public void firePropertyChange(String propertyName,
int oldValue,
int newValue)
Component 中的 firePropertyChangepropertyName - 其值已更改的属性oldValue - 该属性以前的值newValue - 该属性的新值
public void firePropertyChange(String propertyName,
char oldValue,
char newValue)
Component 复制的描述
Component 中的 firePropertyChangepropertyName - 已改变的属性的编程名称oldValue - 该属性的旧值(char 类型)newValue - 该属性的新值(char 类型)Component.firePropertyChange(java.lang.String, java.lang.Object, java.lang.Object)
protected void fireVetoableChange(String propertyName,
Object oldValue,
Object newValue)
throws PropertyVetoException
VetoableChangeListeners 发送相应的 PropertyChangeEvent 时可以调用此方法。
propertyName - 对其进行侦听的属性名称oldValue - 该属性的旧值newValue - 该属性的新值
PropertyVetoException - 组件禁止设置该属性时public void addVetoableChangeListener(VetoableChangeListener listener)
VetoableChangeListener。为所有属性注册该侦听器。
listener - 要添加的 VetoableChangeListenerpublic void removeVetoableChangeListener(VetoableChangeListener listener)
VetoableChangeListener。此方法移除了一个为所有属性注册的 VetoableChangeListener。
listener - 要移除的 VetoableChangeListenerpublic VetoableChangeListener[] getVetoableChangeListeners()
VetoableChangeListener,如果当前没有注册的可否决更改侦听器,则返回一个空数组addVetoableChangeListener(java.beans.VetoableChangeListener),
removeVetoableChangeListener(java.beans.VetoableChangeListener)public Container getTopLevelAncestor()
Window 或 Applet),如果尚未将此组件添加到任意容器中,则返回 null。
Container,如果不在任何容器中,则返回 nullpublic void addAncestorListener(AncestorListener listener)
listener,这样当组件或其任意祖先移动,或者变得可见或不可见时该侦听器可接收 AncestorEvents。从包含层次结构中添加或移除组件或其祖先时,也发送这些事件。
listener - 要注册的 AncestorListenerAncestorEventpublic void removeAncestorListener(AncestorListener listener)
listener,使其不再接收 AncestorEvents。
listener - 要移除的 AncestorListeneraddAncestorListener(javax.swing.event.AncestorListener)public AncestorListener[] getAncestorListeners()
AncestorListener,如果当前没有注册的祖先侦听器,则返回一个空数组addAncestorListener(javax.swing.event.AncestorListener),
removeAncestorListener(javax.swing.event.AncestorListener)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 中的 getListenerslistenerType - 所请求的侦听器类型;此参数应该指定一个从 java.util.EventListener 继承的接口
FooListener 注册的所有对象的数组,如果尚未添加这样的侦听器,则返回一个空数组
ClassCastException - 如果 listenerType 未指定一个实现 java.util.EventListener 的类或接口getVetoableChangeListeners(),
getAncestorListeners()public void addNotify()
KeyboardAction 事件侦听器设置父组件链。
Container 中的 addNotifyregisterKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)public void removeNotify()
KeyboardAction。
Container 中的 removeNotifyregisterKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)
public void repaint(long tm,
int x,
int y,
int width,
int height)
Component 中的 repainttm - 不使用此参数x - 脏区的 x 值y - 脏区的 y 值width - 脏区的宽度height - 脏区的高度Component.isShowing(),
RepaintManager.addDirtyRegion(javax.swing.JComponent, int, int, int, int)public void repaint(Rectangle r)
r - 包含脏区的 RectangleComponent.isShowing(),
RepaintManager.addDirtyRegion(javax.swing.JComponent, int, int, int, int)public void revalidate()
调用 invalidate 并将此组件的 validateRoot 添加到需要验证的组件列表中。调度完当前所有未完成的事件后进行验证。换句话说,调用此方法后,将验证浏览此组件的包含层次结构时找到的第一个 validateRoot(如果有)。默认情况下,JRootPane、JScrollPane 和 JTextField 从 isValidateRoot 返回 true。
当属性值更改,从而影响此组件的大小、位置或内部布局时,就对此组件自动调用此方法。这种自动更新不同于 AWT,因为通常来说,程序不再需要调用 validate 来获得要更新的 GUI 的内容。
Component.invalidate(),
Container.validate(),
isValidateRoot(),
RepaintManager.addInvalidComponent(javax.swing.JComponent)public boolean isValidateRoot()
revalidate 将导致对从此根开始的整棵树进行验证。默认返回 false。JScrollPane 重写此方法并返回 true。
revalidate(),
Component.invalidate(),
Container.validate()public boolean isOptimizedDrawingEnabled()
JComponent 子类(如 JLayeredPane)应该重写此方法以返回 false。
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)public void paintImmediately(Rectangle r)
r - 包含要绘制区域的 Rectanglepublic void setDoubleBuffered(boolean aFlag)
Component,并且还缓冲了它的某个祖先,则将使用该祖先缓冲区。
aFlag - 如果为 true,则设置此组件使用双缓冲区进行缓冲public boolean isDoubleBuffered()
Component 中的 isDoubleBufferedpublic JRootPane getRootPane()
JRootPane 祖先。
JRootPane,如果未找到 JRootPane,则为 nullprotected String paramString()
JComponent 的字符串表示形式。此方法仅在进行调试的时候使用,对于各个实现,所返回字符串的内容和格式可能有所不同。返回的字符串可能为空,但不可能为 null。
Container 中的 paramStringJComponent 的字符串表示形式
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。