public abstract class JComponent extends Container implements Serializable
JComponent
继承的JComponent
,您必须将组件放置在其根为顶级Swing容器的包含层次结构中。
顶层Swing容器-比如JFrame
, JDialog
和JApplet
-是提供一个地方,其他Swing组件绘制自己的专用组件。
有关限制层次结构的说明,请参阅Java Tutorial中的 Swing Components and the Containment Hierarchy部分。
JComponent
课程提供:
ComponentUI
下载的对象。 见How to Set the Look and Feel在Java教程获取更多信息。 JComponent
包含所有的方法Accessible
接口,但它实际上并没有实现的接口。 这是延长JComponent
的个别课程的JComponent
。 putClientProperty(java.lang.Object, java.lang.Object)
和getClientProperty(java.lang.Object)
方法,可以将名称对象对与从JComponent
下降的任何对象进行JComponent
。 JComponent
及其子类记录某些属性的默认值。 例如, JTable
将默认行高度为16.每个JComponent
子类具有ComponentUI
将创建ComponentUI
作为其构造ComponentUI
的一部分。 为了提供一个特别的外观和感觉,每个ComponentUI
可以设置回到JComponent
创建它的JComponent
。 例如,自定义外观可能需要JTable
的行高为24.记录的默认值是在安装ComponentUI
之前的属性值。 如果您需要特定属性的特定值,则应显式设置它。
在1.4版本中,重点子系统被重新设计。 有关更多信息,请参阅Java教程中的 How to Use the Focus Subsystem部分。
警告: Swing不是线程安全的。 有关更多信息,请参阅Swing's Threading Policy 。
警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,对所有JavaBeans的长期存储的支持已经添加到java.beans
包中。 请参阅XMLEncoder
。
Modifier and Type | Class and Description |
---|---|
class |
JComponent.AccessibleJComponent
JComponent的内部类用于为辅助功能提供默认支持。
|
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Modifier and Type | Field and Description |
---|---|
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 ,这意味着当接收组件在具有焦点的窗口中或者本身是聚焦组件时,应该调用该命令。
|
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor and Description |
---|
JComponent()
默认
JComponent 构造函数。
|
Modifier and Type | Method and Description |
---|---|
void |
addAncestorListener(AncestorListener listener)
寄存器
listener ,这样它会收到
AncestorEvents 时,或任何其祖先移动,或者变得可见或不可见。
|
void |
addNotify()
通知此组件它现在有一个父组件。
|
void |
addVetoableChangeListener(VetoableChangeListener listener)
将
VetoableChangeListener 添加到侦听器列表。
|
void |
computeVisibleRect(Rectangle visibleRect)
返回
Component 的“可见矩形矩形” - 该组件的可见矩形与其所有祖先的交集。
|
boolean |
contains(int x, int y)
为UI代理提供一个机会,以便为鼠标处理定义该组件的精确形状。
|
JToolTip |
createToolTip()
返回应用于显示工具提示的
JToolTip 的实例。
|
void |
disable()
已弃用
从JDK 1.1版开始,由
java.awt.Component.setEnabled(boolean) 。
|
void |
enable()
已弃用
从JDK 1.1版开始,由
java.awt.Component.setEnabled(boolean) 。
|
void |
firePropertyChange(String propertyName, boolean oldValue, boolean newValue)
支持报告布尔属性的绑定属性更改。
|
void |
firePropertyChange(String propertyName, char oldValue, char newValue)
报告绑定属性更改。
|
void |
firePropertyChange(String propertyName, int oldValue, int newValue)
支持报告整数属性的绑定属性更改。
|
protected void |
fireVetoableChange(String propertyName, Object oldValue, Object newValue)
支持报告受限的属性更改。
|
ActionListener |
getActionForKeyStroke(KeyStroke aKeyStroke)
返回将执行为给定键击注册的操作的对象。
|
ActionMap |
getActionMap()
返回
ActionMap 用于确定什么
Action 为特定的
KeyStroke 绑定。
|
float |
getAlignmentX()
覆盖
Container.getAlignmentX 以返回垂直对齐方式。
|
float |
getAlignmentY()
覆盖
Container.getAlignmentY 以返回水平对齐方式。
|
AncestorListener[] |
getAncestorListeners()
返回在此组件上注册的所有祖先监听器的数组。
|
boolean |
getAutoscrolls()
获取
autoscrolls 属性。
|
int |
getBaseline(int width, int height)
返回基线。
|
Component.BaselineResizeBehavior |
getBaselineResizeBehavior()
返回一个枚举,指示组件的基线如何随着大小的变化而改变。
|
Border |
getBorder()
如果当前没有设置边框,则返回此组件的边框或
null 。
|
Rectangle |
getBounds(Rectangle rv)
将此组件的边界存储在“返回值”
rv ,并返回
rv 。
|
Object |
getClientProperty(Object key)
使用指定的键返回属性的值。
|
protected Graphics |
getComponentGraphics(Graphics g)
返回用于绘制该组件的图形对象。
|
JPopupMenu |
getComponentPopupMenu()
返回
JPopupMenu 是分配给该组件。
|
int |
getConditionForKeyStroke(KeyStroke aKeyStroke)
返回确定是否发生注册的操作以响应指定的击键的条件。
|
int |
getDebugGraphicsOptions()
返回图形调试状态。
|
static Locale |
getDefaultLocale()
返回用于在创建时初始化每个JComponent的locale属性的默认区域设置。
|
FontMetrics |
getFontMetrics(Font font)
获得
FontMetrics 指定的
Font 。
|
Graphics |
getGraphics()
返回此组件的图形上下文,可让您绘制组件。
|
int |
getHeight()
返回此组件的当前高度。
|
boolean |
getInheritsPopupMenu()
如果JPopupMenu应该从父级继承,则返回true。
|
InputMap |
getInputMap()
返回
InputMap 在组件具有焦点时使用。
|
InputMap |
getInputMap(int condition)
返回
InputMap 中使用的
condition 。
|
InputVerifier |
getInputVerifier()
返回此组件的输入验证器。
|
Insets |
getInsets()
如果在此组件上设置了边框,则返回边框的插入;
否则拨打 super.getInsets 。
|
Insets |
getInsets(Insets insets)
返回一个
Insets 此组件的插入值的
Insets 对象。
|
<T extends EventListener> |
getListeners(类<T> listenerType)
返回当前注册的所有对象的数组
FooListener 在这个S
JComponent 。
|
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)
返回要用作
事件的工具提示的字符串。
|
Container |
getTopLevelAncestor()
返回此组件的顶级祖先(包含
Window 或
Applet )或
null 如果此组件尚未添加到任何容器)。
|
TransferHandler |
getTransferHandler()
获取
transferHandler 属性。
|
String |
getUIClassID()
返回
UIDefaults 键用于查找定义该组件外观的
swing.plaf.ComponentUI 类的名称。
|
boolean |
getVerifyInputWhenFocusTarget()
返回指示当前焦点所有者的输入验证程序是否在此组件请求焦点之前被调用的值。
|
VetoableChangeListener[] |
getVetoableChangeListeners()
返回在此组件上注册的所有可变更改监听器的数组。
|
Rectangle |
getVisibleRect()
返回
Component 的“可见矩形” - 此组件的可见矩形
new Rectangle(0, 0, getWidth(), getHeight()) 与其所有祖先的可见矩形的交集。
|
int |
getWidth()
返回此组件的当前宽度。
|
int |
getX()
返回组件原点的当前x坐标。
|
int |
getY()
返回组件原点的当前y坐标。
|
void |
grabFocus()
请求此组件获取输入焦点,并且该组件的顶级祖先成为关注的窗口。
|
void |
hide()
已弃用
|
boolean |
isDoubleBuffered()
返回此组件是否应该使用缓冲区来绘制。
|
static boolean |
isLightweightComponent(Component c)
如果该组件是轻量级的,那么返回true,也就是说,如果它没有本机窗口系统对等体,则返回true。
|
boolean |
isManagingFocus()
已弃用
截至1.4,由
Component.setFocusTraversalKeys(int, Set) 和Container.setFocusCycleRoot(boolean) 。
|
boolean |
isOpaque()
如果此组件完全不透明,则返回true。
|
boolean |
isOptimizedDrawingEnabled()
如果此组件贴图其子项,则返回true - 即,如果可以保证子项不会重叠。
|
boolean |
isPaintingForPrint()
返回
true 如果此组件上的当前绘制操作是一部分
print 操作。
|
protected boolean |
isPaintingOrigin()
返回
true 如果在子组件上触发的绘画应该导致绘画源自此组件或其祖先之一。
|
boolean |
isPaintingTile()
如果组件当前正在绘制图块,则返回true。
|
boolean |
isRequestFocusEnabled()
返回 true 如果这JComponent 应该得到焦点;
否则返回false 。
|
boolean |
isValidateRoot()
如果此方法返回true,
revalidate 此组件的
revalidate 调用revalidate将导致从该根开始的整个树被验证。
|
void |
paint(Graphics g)
由Swing调用来绘制组件。
|
protected void |
paintBorder(Graphics g)
绘制组件的边框。
|
protected void |
paintChildren(Graphics g)
涂抹这个组件的孩子。
|
protected void |
paintComponent(Graphics g)
调用UI代理的paint方法,如果UI代理不是
null 。
|
void |
paintImmediately(int x, int y, int w, int h)
立即绘制该组件及其与该区域重叠的所有后代的指定区域。
|
void |
paintImmediately(Rectangle r)
现在涂漆指定区域。
|
protected String |
paramString()
返回此
JComponent 的字符串表示
JComponent 。
|
void |
print(Graphics g)
调用此方法将组件打印到指定的
Graphics 。
|
void |
printAll(Graphics g)
调用此方法打印组件。
|
protected void |
printBorder(Graphics g)
打印组件的边框。
|
protected void |
printChildren(Graphics g)
打印此组件的子项。
|
protected void |
printComponent(Graphics g)
这在打印操作期间被调用。
|
protected void |
processComponentKeyEvent(KeyEvent e)
处理组件本身识别的任何关键事件。
|
protected boolean |
processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed)
调用以处理键绑定为
ks 作为的结果
KeyEvent
e 。
|
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)
如果组件显示,则将指定的区域添加到脏区列表。
|
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)
设置
JPopupMenu 为
JComponent 。
|
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)
设置此组件给定遍历操作的焦点遍历键。
|
void |
setFont(Font font)
设置此组件的字体。
|
void |
setForeground(Color fg)
设置此组件的前景颜色。
|
void |
setInheritsPopupMenu(boolean value)
设置是否
getComponentPopupMenu 应该委托给其父如果此组件没有一个
JPopupMenu 分配给它。
|
void |
setInputMap(int condition, InputMap map)
将
InputMap 设置为使用条件
condition 至
map 。
|
void |
setInputVerifier(InputVerifier inputVerifier)
设置此组件的输入验证器。
|
void |
setMaximumSize(Dimension maximumSize)
将此组件的最大大小设置为常量值。
|
void |
setMinimumSize(Dimension minimumSize)
将此组件的最小大小设置为常量值。
|
void |
setNextFocusableComponent(Component aComponent)
已弃用
截至1.4,由
FocusTraversalPolicy 取代
|
void |
setOpaque(boolean isOpaque)
如果为真,组件将绘制其边界内的每个像素。
|
void |
setPreferredSize(Dimension preferredSize)
设置此组件的首选大小。
|
void |
setRequestFocusEnabled(boolean requestFocusEnabled)
提供这个
JComponent 是否应该获得关注的提示。
|
void |
setToolTipText(String text)
注册文本以显示在工具提示。
|
void |
setTransferHandler(TransferHandler newHandler)
设置
TransferHandler ,它支持通过剪切/复制/粘贴和拖放将数据传入和传出该组件。
|
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属性重置为当前外观的值。
|
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, 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, getAccessibleContext, 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, 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, transferFocusBackward, transferFocusUpCycle
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
public JComponent()
JComponent
构造函数。
这个构造函数在调用Container
构造函数Container
做的很少。
例如,初始布局管理器是null
。
它,然而,该组件的语言环境属性设置为返回的值JComponent.getDefaultLocale
。
getDefaultLocale()
public void setInheritsPopupMenu(boolean value)
getComponentPopupMenu
是否应委派给父级,如果此组件没有分配给它JPopupMenu
。
默认值为false,但实现为JComponent
s的某些JComponent
子JComponent
可能将其设置为true。
这是一个绑定属性。
value
- 是否继承JPopupMenu
setComponentPopupMenu(javax.swing.JPopupMenu)
public boolean getInheritsPopupMenu()
setComponentPopupMenu(javax.swing.JPopupMenu)
public void setComponentPopupMenu(JPopupMenu popup)
JPopupMenu
这个JComponent
。
UI负责注册绑定和添加必要的监听器,以便JPopupMenu
将在适当的时间显示。
当显示JPopupMenu
取决于外观和感觉:有些可能会显示在鼠标事件上,有些可能会启用键绑定。
如果popup
为null,并且getInheritsPopupMenu
返回true,那么getComponentPopupMenu
将被委派给父进程。 这提供了一种使所有子组件继承父级的弹出菜单的方法。
这是一个绑定属性。
popup
- - 将分配给此组件的弹出窗口可能为空
getComponentPopupMenu()
public JPopupMenu getComponentPopupMenu()
JPopupMenu
是分配给该组件。
如果此组件没有分配给JPopupMenu
,并且getInheritsPopupMenu
为true,则将返回getParent().getComponentPopupMenu()
(假设父级有效。)
JPopupMenu
分配给这个组件或
null
如果没有弹出分配
setComponentPopupMenu(javax.swing.JPopupMenu)
public void updateUI()
JComponent
子类必须覆盖此方法,如下所示:
public void updateUI() {
setUI((SliderUI)UIManager.getUI(this);
}
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()
UIDefaults
键,用于查找定义该组件外观的swing.plaf.ComponentUI
类的名称。
大多数应用程序永远不需要调用此方法。
的子类JComponent
支持可插拔的外观和感觉应该重写这个方法返回一个UIDefaults
键映射到ComponentUI
子类,定义它们的外观和感觉。
UIDefaults
键为
ComponentUI
子类
UIDefaults.getUI(javax.swing.JComponent)
protected Graphics getComponentGraphics(Graphics g)
DebugGraphics
,如果DebugGraphics
,我们创建一个新的DebugGraphics
对象。
否则我们只需配置指定的图形对象的前景和字体。
g
- 原来的
Graphics
对象
Graphics
对象为此组件配置
protected void paintComponent(Graphics g)
null
。
我们通过委托一份Graphics
对象的副本,以保护其余的油漆代码免受不可撤销的更改(例如Graphics.translate
)。
如果重写此在子类中,你不应该在通过永久性变化Graphics
。 例如,您不应该更改剪辑Rectangle
或修改转换。 如果您需要执行这些操作,您可能会发现从Graphics
中传递的操作更容易创建一个新的Graphics
并进行操作。 此外,如果您不调用super的实现,则必须遵守不透明属性,即如果此组件不透明,则必须以非不透明颜色完全填写背景。 如果您不遵守不透明属性,您将可能会看到视觉工件。
在Graphics
对象中传递的对象可能具有除了安装在其上的标识变换之外的变换。 在这种情况下,如果累积应用另一个变换,您可能会得到意想不到的结果。
g
- 保护的
Graphics
对象
paint(java.awt.Graphics)
, ComponentUI
protected void paintChildren(Graphics g)
shouldUseBuffer
为真,则没有组件祖先具有缓冲区,并且组件子项可以使用缓冲区(如果有)。
否则,一个祖先有一个缓冲区当前正在使用,孩子不应该使用缓冲区来绘制。
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
。
update
在
Container
类
g
- 要绘画的
Graphics
上下文
paint(java.awt.Graphics)
, paintComponent(java.awt.Graphics)
, ComponentUI
public void paint(Graphics g)
paint
,而应使用repaint
方法调度组件进行重画。
这种方法实际上委托绘画的工作,三个受保护的方法: paintComponent
, paintBorder
和paintChildren
。 它们按列出的顺序调用,以确保孩子出现在组件本身的顶部。 一般来说,组件及其孩子不应在分配给边界的插页区域中绘制。 子类可以像以前一样覆盖此方法。 一个只想要专门化UI(外观和感觉)的子类,委托的paint
方法应该覆盖paintComponent
。
paint
在
Container
g
- 要绘画的
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
上的print。
printAll
在
Component
类
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
中Graphics
。
print
在
Container
g
- 要绘画的
Graphics
上下文
printComponent(java.awt.Graphics)
,
printBorder(java.awt.Graphics)
,
printChildren(java.awt.Graphics)
,
isPaintingForPrint()
protected void printComponent(Graphics g)
paintComponent
上调用paintComponent
来实现的。
如果您希望在打印时添加特殊的绘画行为,请覆盖此项。
g
- 要绘画的
Graphics
上下文
print(java.awt.Graphics)
protected void printChildren(Graphics g)
paintChildren
上调用paintChildren。
如果您希望以不同于绘画的方式打印孩子,请覆盖此项。
g
- 要绘画的
Graphics
上下文
print(java.awt.Graphics)
protected void printBorder(Graphics g)
paintBorder
上的paintBorder来实现的。
如果您希望以不同的方式打印边框,则覆盖此项。
g
- 要绘画的
Graphics
上下文
print(java.awt.Graphics)
public boolean isPaintingTile()
public final boolean isPaintingForPrint()
true
如果此组件上的当前绘制操作是一部分print
操作。
当您要自定义您打印的内容与屏幕上显示的内容时,此方法很有用。
您可以通过侦听名称为"paintingForPrint"
此组件上的属性更改事件来检测此属性的值的更改。
注意:此方法提供了由其他高级别Swing打印API提供的功能。 但是,它严格执行绘画,不应该像提供更高级别的打印流程的信息那样混淆。 例如, JTable.print()
操作不一定导致在全成分的连续再现,而这种方法的返回值可以在操作过程中改变多次。 打印过程正在进行时,甚至可以将组件涂到屏幕上。 在这种情况下,此方法的返回值为true
当且仅当打印作为打印过程的一部分时才将该表进行绘制。
print(java.awt.Graphics)
@Deprecated public boolean isManagingFocus()
Component.setFocusTraversalKeys(int, Set)
和Container.setFocusCycleRoot(boolean)
。
将此JComponent
的焦点遍历键更改为CTRL + TAB和CTRL + SHIFT + TAB。 在计算焦点遍历周期时也可以防止SortingFocusTraversalPolicy
考虑此JComponent的后代。
@Deprecated public void setNextFocusableComponent(Component aComponent)
FocusTraversalPolicy
取代
覆盖缺省FocusTraversalPolicy
这个JComponent
“无条件地设置指定的重点遍历循环Component
作为下Component
的周期,这JComponent
为指定的Component
的以前Component
的周期。
aComponent
-
Component
应该遵循这个
JComponent
在焦点遍历周期
getNextFocusableComponent()
, FocusTraversalPolicy
@Deprecated public Component getNextFocusableComponent()
FocusTraversalPolicy
取代。
返回Component
设置由先前调用setNextFocusableComponent(Component)
在这JComponent
。
Component
,将遵循这一
JComponent
的焦点遍历循环,或
null
;如果没有明确指定
setNextFocusableComponent(java.awt.Component)
public void setRequestFocusEnabled(boolean requestFocusEnabled)
JComponent
是否应该获得关注的提示。
这只是一个提示,由消费者要求重点关注这个财产。
这通常适用于鼠标操作,但不是键盘操作。
例如,在鼠标操作期间请求焦点,外观和感觉可以验证此属性是否为真。
这时常被使用,如果你不想在鼠标按下JComponent
偷焦点,但确实希望JComponent
是通过键盘穿越。
如果您不希望这个JComponent
对焦,请setFocusable
方法。
有关详细信息 ,请参阅Java教程中的How to Use the Focus Subsystem部分。
requestFocusEnabled
- 指示您是否希望此
JComponent
可对焦
Component.setFocusable(boolean)
public boolean isRequestFocusEnabled()
true
如果这个组件应该得到焦点,否则返回
false
setRequestFocusEnabled(boolean)
,
Focus Specification ,
Component.isFocusable()
public void requestFocus()
Component
获取输入焦点。
有关此方法的完整说明,请参阅Component.requestFocus()
。
请注意,不鼓励使用此方法,因为它的行为是平台依赖的。 相反,我们推荐使用requestFocusInWindow()
。 如果您想了解更多关于焦点的信息,请参阅Java Tutorial中的 How to Use the Focus Subsystem 。
requestFocus
在
Component
Component.requestFocusInWindow()
,
Component.requestFocusInWindow(boolean)
public boolean requestFocus(boolean temporary)
Component
获取输入焦点。
有关此方法的完整说明,请参阅Component.requestFocus(boolean)
。
请注意,不鼓励使用此方法,因为它的行为是平台依赖的。 相反,我们推荐使用requestFocusInWindow(boolean)
。 如果您想了解更多关于焦点的信息,请参阅Java教程中的 How to Use the Focus Subsystem 。
requestFocus
在
Component
temporary
- 指示焦点更改是否为临时的布尔值
false
如果焦点更改请求保证失败;
true
如果有可能成功
Component.requestFocusInWindow()
,
Component.requestFocusInWindow(boolean)
public boolean requestFocusInWindow()
Component
得到输入焦点。
有关此方法的完整说明,请参阅Component.requestFocusInWindow()
。
如果您想了解更多关于焦点的信息,请参阅Java Tutorial中的 How to Use the Focus Subsystem部分。
requestFocusInWindow
在
Component
false
如果焦点更改请求保证失败;
true
如果有可能成功
Component.requestFocusInWindow()
,
Component.requestFocusInWindow(boolean)
protected boolean requestFocusInWindow(boolean temporary)
Component
获得输入焦点。
有关此方法的完整说明,请参阅Component.requestFocusInWindow(boolean)
。
如果您想了解更多关于焦点的信息,请参阅Java Tutorial中的 How to Use the Focus Subsystem部分。
requestFocusInWindow
在
Component
temporary
- 布尔值,表示焦点更改是否是临时的
false
如果焦点更改请求保证失败;
true
如果有可能成功
Component.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)
FontMetrics
指定的
Font
。
getFontMetrics
在
Component
font
- 要获取字体指标的字体
font
的字体指标
NullPointerException
- 如果
font
为空
Component.getFont()
,
Component.getPeer()
,
ComponentPeer.getFontMetrics(Font)
,
Toolkit.getFontMetrics(Font)
public void setPreferredSize(Dimension preferredSize)
preferredSize
是null
,则会询问UI的首选大小。
setPreferredSize
在
Component
preferredSize
- 新的首选大小,或null
Component.getPreferredSize()
,
Component.isPreferredSizeSet()
public Dimension getPreferredSize()
preferredSize
已经被设置为非null
值只是返回它。
如果UI代表的getPreferredSize
方法返回一个非null
值,那么返回那个;
否则推迟到组件的布局管理器。
getPreferredSize
在
Container
preferredSize
属性
setPreferredSize(java.awt.Dimension)
, ComponentUI
public void setMaximumSize(Dimension maximumSize)
getMaximumSize
将始终返回此值;
组件的UI将不会被要求进行计算。
将最大大小设置为null
可恢复默认行为。
setMaximumSize
在
Component
maximumSize
- a
Dimension
包含所需的最大允许尺寸
getMaximumSize()
public Dimension getMaximumSize()
null
,则返回值。
如果UI代理的getMaximumSize
方法返回一个非null
值,那么返回那个;
否则推迟到组件的布局管理器。
getMaximumSize
在
Container
maximumSize
属性
setMaximumSize(java.awt.Dimension)
, ComponentUI
public void setMinimumSize(Dimension minimumSize)
getMinimumSize
将始终返回此值;
组件的UI将不会被要求进行计算。
将最小大小设置为null
可恢复默认行为。
setMinimumSize
在
Component
minimumSize
- 这个组件的最小尺寸
getMinimumSize()
public Dimension getMinimumSize()
null
值,则返回。
如果UI委托的getMinimumSize
方法返回非null
值,则返回;
否则推迟到组件的布局管理器。
getMinimumSize
在
Container
类
minimumSize
属性
setMinimumSize(java.awt.Dimension)
, ComponentUI
public boolean contains(int x, int y)
contains
在
Component
x
- 点的
x坐标
y
- 点的
y坐标
Component.contains(int, int)
, ComponentUI
public void setBorder(Border border)
Border
对象负责定义组件的插入(覆盖直接在组件上设置的任何插值),并且可选地在这些插入的边界内渲染任何边框装饰。
应使用边框(而不是插图)来创建摆动部件的装饰性和非装饰性(如边距和填充)区域。
复合边框可用于在单个组件中嵌套多个边框。
虽然技术上您可以在从JComponent
继承的任何对象上设置边框,但许多标准Swing组件的外观和感觉实现在用户设置边框上不能很好地工作。 一般来说,当你要设置一个边界上比其他标准的Swing组件JPanel
或JLabel
,我们建议您将组件置于一个JPanel
和设置边框上JPanel
。
这是一个绑定属性。
border
- 要为此组件呈现的边框
Border
, CompoundBorder
public Border getBorder()
null
。
setBorder(javax.swing.border.Border)
public Insets getInsets()
super.getInsets
。
getInsets
在
Container
setBorder(javax.swing.border.Border)
public Insets getInsets(Insets insets)
Insets
此组件的插入值的Insets
对象。
传入的Insets
对象将被重用,如果可能的话。
调用方法不能假定相同的对象将被返回。
此对象内的所有现有值都将被覆盖。
如果insets
为null,则会分配一个新的。
insets
-
Insets
对象,可以重复使用
Insets
对象
getInsets()
public float getAlignmentY()
Container.getAlignmentY
返回水平对齐。
getAlignmentY
在
Container
alignmentY
属性
setAlignmentY(float)
,
Component.getAlignmentY()
public void setAlignmentY(float alignmentY)
alignmentY
- 新的水平对齐
getAlignmentY()
public float getAlignmentX()
Container.getAlignmentX
返回垂直对齐。
getAlignmentX
在
Container
alignmentX
属性
setAlignmentX(float)
,
Component.getAlignmentX()
public void setAlignmentX(float alignmentX)
alignmentX
- 新的垂直对齐
getAlignmentX()
public void setInputVerifier(InputVerifier inputVerifier)
inputVerifier
- 新的输入验证器
InputVerifier
public InputVerifier getInputVerifier()
inputVerifier
属性
InputVerifier
public Graphics getGraphics()
Graphics
对象,然后调用该对象上的操作来绘制组件。
getGraphics
在
Component
Component.paint(java.awt.Graphics)
public void setDebugGraphicsOptions(int debugOptions)
debugOptions
- 确定组件应如何显示信息;
以下选项之一:
ExternalWindow
,显示在View的屏幕外缓冲区上执行的操作。 debugOptions
是按位OR'进入当前值
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
方法。
注册新的键盘操作。 anAction
如果匹配的关键事件将被调用aKeyStroke
发生和aCondition
验证。 KeyStroke
对象定义了键盘键和一个或多个修饰符(alt,shift,ctrl,meta)的特定组合。
如果aCommand
将在交付的事件中设置。
aCondition
可以是以下之一:
- WHEN_FOCUSED
- The action will be invoked only when the keystroke occurs while the component has the focus.
- WHEN_IN_FOCUSED_WINDOW
- The action will be invoked when the keystroke occurs while the component has the focus or if the component is in the window that has the focus. Note that the component need not be an immediate descendent of the window -- it can be anywhere in the window's containment hierarchy. In other words, whenever any component in the window has the focus, the action registered with this component is invoked.
- WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
- The action will be invoked when the keystroke occurs while the component has the focus or if the component is an ancestor of the component that has the focus.
按键和条件的组合可以为指定的按键+修饰符组合(使用KeyStroke类)定义高级(语义)动作事件,并直接指向具有焦点的组件的父级或子级,或者指向组件本身。 换句话说,在组件的任何层次结构中,可以立即将任意的键组合定向到层次结构中的适当组件,并且引起特定方法(通常通过适配器对象)。
如果已经为接收容器注册了一个动作,具有相同的charCode和相同的修饰符, anAction
将替换该动作。
anAction
-在
Action
要注册
aCommand
- 在交付事件中设置的命令
aKeyStroke
-
KeyStroke
绑定到动作
aCondition
- 需要满足的条件,见上文
KeyStroke
public void registerKeyboardAction(ActionListener anAction, KeyStroke aKeyStroke, int aCondition)
getActionMap()
和
getInputMap()
进行类似的操作。
public void unregisterKeyboardAction(KeyStroke aKeyStroke)
ActionMap/InputMap
中删除绑定,或者放置虚拟绑定InputMap
。
从InputMap
删除绑定可以使父InputMap
的绑定处于活动状态,而在InputMap
放置虚拟绑定可有效地禁止绑定。
取消注册键盘操作。 这将从ActionMap
(如果存在)以及InputMap
s中删除绑定。
public KeyStroke[] getRegisteredKeyStrokes()
KeyStrokes
启动已注册的行动。
public int getConditionForKeyStroke(KeyStroke aKeyStroke)
对于Java 2平台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)
InputMap
设置为使用条件condition
至map
。
一个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
将抛出一个IllegalArgumentException
。
condition
- 上述值之一
map
-在
InputMap
要使用的给定条件
IllegalArgumentException
-如果condition
是WHEN_IN_FOCUSED_WINDOW
和map
不是一个实例ComponentInputMap
;
或者如果condition
不是上面指定的合法值之一
public final InputMap getInputMap(int condition)
InputMap
中使用的
condition
。
condition
- WHEN_IN_FOCUSED_WINDOW,WHEN_FOCUSED,WHEN_ANCESTOR_OF_FOCUSED_COMPONENT之一
InputMap
为
condition
public final InputMap getInputMap()
InputMap
在组件具有焦点时使用。
这是为了方便起见方法getInputMap(WHEN_FOCUSED)
。
InputMap
使用时组件具有聚焦
public final void setActionMap(ActionMap am)
ActionMap
设置为am
。
这没有将am
的父级设置为UI(如果有的话)为ActionMap
则由呼叫者完成此操作。
am
- 全新
ActionMap
public final ActionMap getActionMap()
ActionMap
用于确定什么Action
为特定KeyStroke
绑定。
返回的ActionMap
,除非另有规定,否则将从设置为父级的UI设置为ActionMap
。
ActionMap
public int getBaseline(int width, int height)
LayoutManager
以使组件沿其基线对齐。
返回值小于0表示此组件没有合理的基线,并且LayoutManager
s不应该将该组件对准其基线。
该方法调用ComponentUI
方法。 如果此组件没有ComponentUI
-1将返回。 如果返回值> = 0,则组件具有任何大小的有效基准> =最小大小, getBaselineResizeBehavior
可以使用getBaselineResizeBehavior来确定基准如何随大小而变化。
getBaseline
在
Component
width
- 获取基准的宽度
height
- 获取基准的高度
IllegalArgumentException
- 如果宽度或高度<0
getBaselineResizeBehavior()
, FontMetrics
public Component.BaselineResizeBehavior getBaselineResizeBehavior()
该方法调用ComponentUI
方法。 如果该组件没有一个ComponentUI
BaselineResizeBehavior.OTHER
将被退回。 子类不应该返回null
; 如果基线不能计算返回BaselineResizeBehavior.OTHER
。 呼叫者应首先使用getBaseline
询问基线,如果返回值> = 0,则使用此方法。 它是可以接受的此方法以返回以外的值BaselineResizeBehavior.OTHER
即使getBaseline
返回的值小于0。
getBaselineResizeBehavior
在
Component
getBaseline(int, int)
@Deprecated public boolean requestDefaultFocus()
FocusTraversalPolicy.getDefaultComponent(Container).requestFocus()
请关注这个JComponent
的FocusTraversalPolicy
的默认值Component
。 如果这个JComponent
是焦点循环根,则使用它的FocusTraversalPolicy
。 否则, FocusTraversalPolicy
此的JComponent
的焦点循环根祖先被使用。
public void setVisible(boolean aFlag)
Component.setVisible
。
setVisible
在
Component
aFlag
- 真实使组件可见;
假使它看不见
Component.isVisible()
,
Component.invalidate()
public void setEnabled(boolean enabled)
注意:禁用组件不会禁用其子项。
注意:禁用轻量级组件不会阻止它接收MouseEvents。
setEnabled
在
Component
enabled
- 如果此组件应启用,则为true,否则为false
Component.isEnabled()
,
Component.isLightweight()
public void setForeground(Color fg)
setForeground
在
Component
类
fg
- 所需的前景
Color
Component.getForeground()
public void setBackground(Color bg)
JComponent
或ComponentUI
实现的JComponent
ComponentUI
时才使用。
JComponent的直接子JComponent
必须覆盖paintComponent
以符合此属性。
这是符合这种财产的外观和感觉,有些人可能会选择忽略它。
setBackground
在
Component
bg
- 所需背景
Color
Component.getBackground()
,
setOpaque(boolean)
public void setFont(Font font)
setFont
在
Container
font
- 该
Font
所需的Font
Component.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
处理事件。
processKeyEvent
在
Component
类
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()
protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed)
ks
作为的结果KeyEvent
e
。
获得适当的InputMap
,获取绑定,从ActionMap
获取操作,然后(如果发现操作并且组件已启用)将调用notifyAction
通知操作。
ks
-
KeyStroke
查询
e
-
KeyEvent
condition
- 以下值之一:
pressed
- 如果按下键,则为true
public void setToolTipText(String text)
text
- 要显示的字符串;
如果文本为null
,则该null
的工具提示已关闭
TOOL_TIP_TEXT_KEY
public String getToolTipText()
setToolTipText
的工具提示字符串。
TOOL_TIP_TEXT_KEY
public String getToolTipText(MouseEvent event)
setToolTipText
设置的字符串。
如果组件提供更广泛的API来支持不同位置的不同工具提示,则应该覆盖此方法。
public Point getToolTipLocation(MouseEvent event)
null
,Swing将选择一个位置。
默认实现返回null
。
event
-
MouseEvent
导致
ToolTipManager
显示工具提示
null
public Point getPopupLocation(MouseEvent event)
null
,外观和感觉会选择合适的位置。
event
-
MouseEvent
触发弹出窗口显示,或
null
如果弹出窗口未显示为鼠标事件的结果
JPopupMenu
,或
null
public JToolTip createToolTip()
JToolTip
的实例。
组件通常不会覆盖此方法,但它可用于使不同的工具提示以不同的方式显示。
JToolTip
用于显示此工具提示
public void scrollRectToVisible(Rectangle aRect)
scrollRectToVisible()
消息到JComponent
的父。
可以对请求进行服务的JViewport
(如JViewport
)会覆盖此方法并执行滚动。
aRect
- 可见
Rectangle
JViewport
public void setAutoscrolls(boolean autoscrolls)
autoscrolls
属性。
如果鼠标在组件边界之外被拖动并且鼠标移动暂停(当按钮继续按住时),则鼠标拖动事件将被合成生成,如果true
。
合成事件使得看起来拖动手势已经在组件边界被越过时建立的方向恢复。
支持自动滚动的组件必须通过使用包含鼠标事件位置的矩形调用scrollRectToVisible
来处理mouseDragged
事件。
所有支持项目的选择,并且通常显示在Swing组件的JScrollPane
( JTable
, JList
, JTree
, JTextArea
和JEditorPane
)已经处理鼠标这样拖事件。
要在任何其他组件中启用自动滚屏,请添加一个调用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
- 如果真的,当鼠标拖动到组件边界之外并鼠标按钮继续按住时,会生成合成鼠标拖动事件;
否则为虚假
getAutoscrolls()
, JViewport
, JScrollPane
public boolean getAutoscrolls()
autoscrolls
属性。
autoscrolls
属性
JViewport
, setAutoscrolls(boolean)
public void setTransferHandler(TransferHandler newHandler)
TransferHandler
,它支持通过剪切/复制/粘贴和拖放将数据传入和传出该组件。
这可能是null
如果该组件不支持数据传输操作。
如果新TransferHandler
不null
,这种方法也安装一个新的 DropTarget
在组件上,激活下拉通过处理TransferHandler
和激活任何内置支持(如计算和显示电势下降位置)。 如果您不希望此组件以任何方式进行响应,您可以通过删除放置目标( setDropTarget(null)
)或取消激活( getDropTaget().setActive(false)
)来完全禁用丢包支持。
如果新的TransferHandler
是null
,则此方法将删除放置目标。
在两种情况下,此方法不会修改放置目标:首先,如果此组件上的现有放置目标由开发人员明确设置为non-null
值。 二,如果系统属性suppressSwingDropSupport
是true
。 系统属性的默认值为false
。
有关更多信息 ,请参阅Java Tutorial How to Use Drag and Drop and Data Transfer中的一节。
newHandler
- 全新
TransferHandler
TransferHandler
, getTransferHandler()
public TransferHandler getTransferHandler()
transferHandler
属性。
transferHandler
属性
TransferHandler
, setTransferHandler(javax.swing.TransferHandler)
protected void processMouseEvent(MouseEvent e)
MouseListener
对象来
处理发生在该组件上的鼠标事件,有关此方法的完整说明,请参阅
Component.processMouseEvent(MouseEvent)
。
processMouseEvent
在
Component
e
- 鼠标事件
Component.processMouseEvent(java.awt.event.MouseEvent)
protected void processMouseMotionEvent(MouseEvent e)
processMouseMotionEvent
在
Component
e
-
MouseEvent
MouseEvent
@Deprecated public void enable()
java.awt.Component.setEnabled(boolean)
。
@Deprecated public void disable()
java.awt.Component.setEnabled(boolean)
替换。
public final Object getClientProperty(Object key)
putClientProperty
将返回非null
值。
key
- 被查询
null
putClientProperty(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>)
。
如果Object
中的keystrokes
不是ClassCastException
则此方法可能会抛出AWTKeyStroke
。
setFocusTraversalKeys
在
Container
id
- 一个KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS或KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS
keystrokes
- 指定操作的AWTKeyStroke集
IllegalArgumentException
- 如果id不是KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS或KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS中的一个,或者如果键击包含null,或者如果任何键击代表KEY_TYPED事件,或者如果任何键击已经映射到此组件的另一个焦点遍历操作
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS
,
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS
,
KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS
public static boolean isLightweightComponent(Component c)
@Deprecated public void reshape(int x, int y, int w, int h)
Component.setBounds(int, int, int, int)
取代。
移动并调整此组件的大小。
reshape
在
Component
x
- 新的水平位置
y
- 新的垂直位置
w
- 新的宽度
h
- 新的高度
Component.setBounds(int, int, int, int)
public Rectangle getBounds(Rectangle rv)
rv
并返回rv
。
如果rv
是null
新Rectangle
分配。
如果呼叫者想避免在堆上分配新的Rectangle
对象,则此版本的getBounds
是非常有用的。
public Dimension getSize(Dimension rv)
rv
,并返回rv
。
如果rv
是null
一个新的Dimension
对象被分配。
如果调用者想避免在堆上分配一个新的Dimension
对象,则此版本的getSize
是非常有用的。
public Point getLocation(Point rv)
rv
,并返回rv
。
如果rv
是null
新Point
分配。
如果呼叫者想要避免在堆上分配一个新的Point
对象,则此版本的getLocation
是非常有用的。
getLocation
在
Component
rv
- 返回值,修改为组件的位置
rv
public int getX()
component.getBounds().x
或component.getLocation().x
,因为它不会导致任何堆分配。
public int getY()
component.getBounds().y
或component.getLocation().y
,因为它不会导致任何堆分配。
public int getWidth()
component.getBounds().width
或component.getSize().width
,因为它不会导致任何堆分配。
public int getHeight()
component.getBounds().height
或component.getSize().height
,因为它不会导致任何堆分配。
public boolean isOpaque()
不透明组件描绘其矩形界限内的每个像素。 非不透明组件仅绘制其像素的子集,或者根本不绘制其子像素,允许其下方的像素“显示”。 因此,不完全绘制其像素的组件提供了一定程度的透明度。
保证总是完全绘制内容的子类应该覆盖此方法并返回true。
isOpaque
在
Component
setOpaque(boolean)
public void setOpaque(boolean isOpaque)
JComponent
该属性的默认值为false。 但是,大多数标准JComponent
子类(如JButton
和JTree
)上此属性的默认值是依赖于外观。
isOpaque
- 如果此组件应该是不透明的,则为true
isOpaque()
public void computeVisibleRect(Rectangle visibleRect)
Component
的“可见矩形矩形” - 该组件的可见矩形与其所有祖先的交集。
返回值存储在visibleRect
。
visibleRect
- 一个
Rectangle
计算为该组件的所有可见矩形及其所有祖先的交点 - 这是此方法的返回值
getVisibleRect()
public Rectangle getVisibleRect()
Component
的“可见矩形” - 该组件的可见矩形
new Rectangle(0, 0, getWidth(), getHeight())
及其所有祖先的可见矩形的交集。
public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue)
firePropertyChange
在
Component
propertyName
- 其值已更改的属性
oldValue
- 该物业的以前的价值
newValue
- 该物业的新价值
public void firePropertyChange(String propertyName, int oldValue, int newValue)
firePropertyChange
在
Component
propertyName
- 其值已更改的属性
oldValue
- 该物业的以前的价值
newValue
- 物业的新价值
public void firePropertyChange(String propertyName, char oldValue, char newValue)
Component
firePropertyChange
在
Component
propertyName
- 已更改的属性的编程名称
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
PropertyChangeEvent
到任何已注册的VetoableChangeListeners
。
propertyName
- 收听的财产的名称
oldValue
- 该物业的旧值
newValue
- 该物业的新价值
PropertyVetoException
- 设置属性的尝试被组件否决
public void addVetoableChangeListener(VetoableChangeListener listener)
VetoableChangeListener
添加到侦听器列表。
所有属性都注册了监听器。
listener
- 要添加的
VetoableChangeListener
public void removeVetoableChangeListener(VetoableChangeListener listener)
VetoableChangeListener
。
这消除了一个VetoableChangeListener
已注册的所有属性。
listener
- 要删除的
VetoableChangeListener
public VetoableChangeListener[] getVetoableChangeListeners()
VetoableChangeListener
s或一个空的数组,如果没有否决权变更监听器当前注册
addVetoableChangeListener(java.beans.VetoableChangeListener)
,
removeVetoableChangeListener(java.beans.VetoableChangeListener)
public Container getTopLevelAncestor()
Window
或
Applet
),或
null
如果组件没有被添加到任意容器。
Container
的顶级
Container
,或
null
如果不在任何容器
public void addAncestorListener(AncestorListener listener)
listener
,这样它会收到AncestorEvents
时,或任何其祖先移动,或者变得可见或不可见。
当组件或其祖先从包含层次结构中添加或删除时,也会发送事件。
listener
- 要注册的
AncestorListener
AncestorEvent
public void removeAncestorListener(AncestorListener listener)
listener
,使其不会再收到
AncestorEvents
。
listener
- 要删除的
AncestorListener
addAncestorListener(javax.swing.event.AncestorListener)
public AncestorListener[] getAncestorListeners()
AncestorListener
s或一个空数组,如果没有祖先侦听器当前注册
addAncestorListener(javax.swing.event.AncestorListener)
,
removeAncestorListener(javax.swing.event.AncestorListener)
public <T extends EventListener> T[] getListeners(类<T> listenerType)
JComponent
当前注册为FooListener
的所有对象的数组。
FooListener
使用addFooListener
。
您可以使用类文字指定listenerType
参数,例如FooListener.class
。 例如,您可以使用以下代码查询JComponent
c
的鼠标监听器:
MouseListener[] mls = (MouseListener[])(c.getListeners(MouseListener.class));
如果没有这样的侦听器存在,这个方法返回一个空数组。
getListeners
在
Container
类
listenerType
- 所请求的听众的类型;
此参数应指定从java.util.EventListener
下降的java.util.EventListener
FooListener
的所有对象的数组,如果没有添加此类侦听器,则为空数组
ClassCastException
- 如果
listenerType
没有指定实现java.util.EventListener的类或
java.util.EventListener
getVetoableChangeListeners()
,
getAncestorListeners()
public void addNotify()
KeyboardAction
事件侦听器设置。
该方法在内部被工具包调用,不应该被程序直接调用。
public void removeNotify()
KeyboardAction
。
该方法在内部被工具包调用,不应该被程序直接调用。
public void repaint(long tm, int x, int y, int width, int height)
repaint
在
Component
tm
- 不使用此参数
x
- 脏区域的x值
y
- 脏区域的y值
width
- 脏区域的宽度
height
- 脏区域的高度
isPaintingOrigin()
,
Component.isShowing()
,
RepaintManager.addDirtyRegion(javax.swing.JComponent, int, int, int, int)
public void repaint(Rectangle r)
r
- 一个
Rectangle
脏区域的
Rectangle
isPaintingOrigin()
,
Component.isShowing()
,
RepaintManager.addDirtyRegion(javax.swing.JComponent, int, int, int, int)
public void revalidate()
致电invalidate
,然后将此组件的validateRoot
添加到需要验证的validateRoot
列表中。 所有当前待处理的事件都将被分派之后,将进行验证。 换句话说,在调用此方法之后,将验证在步入该组件的包含层次结构时找到的第一个validateRoot(如果有)。 默认情况下, JRootPane
, JScrollPane
和JTextField
回真正从isValidateRoot
。
当属性值更改时,此组件将自动调用此方法,以使该组件的大小,位置或内部布局受到影响。 这种自动更新与AWT不同,因为程序通常不再需要调用validate
来获取GUI的内容来更新。
public boolean isValidateRoot()
revalidate
此组件的revalidate
调用将导致从该根开始的整个树被验证。
默认情况下返回false。
JScrollPane
覆盖此方法并返回true。
isValidateRoot
在
Container
revalidate()
,
Component.invalidate()
,
Container.validate()
,
Container.isValidateRoot()
public boolean isOptimizedDrawingEnabled()
JComponent
不能使这个保证的子类,如JLayeredPane
应该覆盖这个方法返回false。
protected boolean isPaintingOrigin()
true
如果在子组件上触发的绘画应该导致绘制源自此组件或其祖先之一。
在Swing 组件上调用repaint(long, int, int, int, int)
或paintImmediately(int, int, int, int)
将导致调用isPaintingOrigin()
返回true
的第一个祖先的paintImmediately(int, int, int, int)
方法(如果有的话)。
JComponent
子类,当他们的任何孩子被重绘时需要绘制,应该覆盖此方法以返回true
。
false
paintImmediately(int, int, int, int)
public void paintImmediately(int x, int y, int w, int h)
很少需要调用这个方法。 在大多数情况下,调用重绘更为有效,这会拖延实际绘画,并可将多余的请求压缩成单个绘图调用。 如果在调度当前事件时需要更新显示,此方法很有用。
当为绘制起点的组件需要更改脏区域时,该方法将被覆盖。
x
- 要绘制的区域的x值
y
- 要绘制的区域的y值
w
- 要涂漆的区域的宽度
h
- 要涂漆的区域的高度
repaint(long, int, int, int, int)
,
isPaintingOrigin()
public void paintImmediately(Rectangle r)
r
- 一个
Rectangle
包含要涂漆的区域
public void setDoubleBuffered(boolean aFlag)
Component
,并且其祖先之一也被缓存,那么将使用祖先缓冲区。
aFlag
- 如果为true,请将此组件设置为双缓冲
public boolean isDoubleBuffered()
isDoubleBuffered
在
Component
类
public JRootPane getRootPane()
JRootPane
祖先。
JRootPane
包含此组件,或
null
如果没有
JRootPane
发现
protected String paramString()
JComponent
的字符串表示JComponent
。
该方法仅用于调试目的,并且返回的字符串的内容和格式可能因实现而异。
返回的字符串可能为空,但可能不是null
。
paramString
在
Container
类
JComponent
的字符串表示
JComponent
@Deprecated public void hide()