- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- All Implemented Interfaces:
-
ImageObserver
,MenuContainer
,Serializable
- 已知直接子类:
-
AbstractButton
,BasicInternalFrameTitlePane
,Box
,Box.Filler
,JColorChooser
,JComboBox
,JFileChooser
,JFXPanel
,JInternalFrame
,JInternalFrame.JDesktopIcon
,JLabel
,JLayer
,JLayeredPane
,JList
,JMenuBar
,JOptionPane
,JPanel
,JPopupMenu
,JProgressBar
,JRootPane
,JScrollBar
,JScrollPane
,JSeparator
,JSlider
,JSpinner
,JSplitPane
,JTabbedPane
,JTable
,JTableHeader
,JTextComponent
,JToolBar
,JToolTip
,JTree
,JViewport
@JavaBean(defaultProperty="UIClassID") public abstract class JComponent extends Container implements Serializable
除顶级容器之外的所有Swing组件的基类。 要使用从JComponent
继承的组件,必须将组件放在一个包含层次结构中,其根是顶级的Swing容器。 顶层Swing容器-比如JFrame
,JDialog
,并JApplet
-是提供一个地方,其他Swing组件绘制自己的专用组件。 有关限制层次结构的说明,请参阅“Java教程”中的“ Swing Components and the Containment Hierarchy ”一节。JComponent
类提供:- 使用Swing架构的标准和自定义组件的基类。
- 可编程器指定的“可插拔外观”(L&F),或(可选)由用户在运行时选择。 每个组件的外观和感觉由UI委托提供 - 一个从
ComponentUI
下降的对象。 有关详细信息,请参阅Java教程中的 How to Set the Look and Feel 。 - 综合按键处理。 有关更多信息,请参阅文档How to Use Key Bindings , Java教程中的一篇文章。
- 支持工具提示 - 当光标停留在组件上时弹出的简短说明。 有关详细信息,请参阅Java教程中的 How to Use Tool Tips 。
- 支持无障碍。
JComponent
包含Accessible
接口中的所有方法,但实际上并没有实现该接口。 这是扩展JComponent
的各个类的责任。 - 支持特定于组件的属性。 使用
putClientProperty(java.lang.Object, java.lang.Object)
和getClientProperty(java.lang.Object)
方法,可以将名称对象对与从JComponent
下降的任何对象进行JComponent
。 - 绘画的基础设施,包括双重缓冲和支持边界。 有关更多信息,请参阅Painting和How to Use Borders ,这两个都是Java教程中的部分。
JComponent
及其子类记录某些属性的默认值。 例如,JTable
将默认行高度记为16.每个具有ComponentUI
JComponent
子类将创建ComponentUI
作为其构造函数的一部分。 为了提供一个特定的外观和感觉,每个ComponentUI
可以在创建它的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
。- 从以下版本开始:
- 1.2
- 另请参见:
-
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)
, Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 class
JComponent.AccessibleJComponent
JComponent的内部类用于为辅助功能提供默认支持。-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
-
Field Summary
Fields Modifier and Type Field 描述 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
,这意味着当接收组件在具有焦点的窗口中或者本身是聚焦组件时,应该调用该命令。-
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
-
构造方法摘要
构造方法 Constructor 描述 JComponent()
默认JComponent
构造函数。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 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
对象,该对象包含该组件的插入值。<T extends EventListener>
T[]getListeners(Class<T> listenerType)
返回此JComponent
当前注册为FooListener
的所有对象的数组。Point
getLocation(Point rv)
将该组件的x,y原点存储到“返回值”rv
并返回rv
。Dimension
getMaximumSize()
如果最大大小已设置为非null
,则返回值。Dimension
getMinimumSize()
如果最小尺寸设置为非null
,则返回值。Component
getNextFocusableComponent()
已过时。截至1.4,由FocusTraversalPolicy
替代。Point
getPopupLocation(MouseEvent event)
返回在该组件的坐标系中显示弹出菜单的首选位置。Dimension
getPreferredSize()
如果preferredSize
已被设置为非null
值,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
属性。ComponentUI
getUI()
返回渲染此组件的外观和委托。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()
如果此组件上的当前绘画操作是print
操作的一部分,则返回true
。protected boolean
isPaintingOrigin()
返回true
如果在子组件上触发的绘画应该导致绘画源自此组件或其祖先之一。boolean
isPaintingTile()
如果组件当前正在绘制图块,则返回true。boolean
isRequestFocusEnabled()
返回true
如果这个JComponent
应该得到焦点; 否则返回false
。boolean
isValidateRoot()
如果此方法返回true,revalidate
此组件的后代调用revalidate
将导致从该根开始的整个树被验证。void
paint(Graphics g)
由Swing调用来绘制组件。protected void
paintBorder(Graphics g)
绘制组件的边框。protected void
paintChildren(Graphics g)
涂抹这个组件的孩子。protected void
paintComponent(Graphics g)
调用UInull
的paint方法,如果UInull
。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, String aCommand, KeyStroke aKeyStroke, int aCondition)
此方法现已过时,请使用getActionMap()
和getInputMap()
的组合进行类似的操作。void
registerKeyboardAction(ActionListener anAction, 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)
向JComponent
的父母转发scrollRectToVisible()
消息。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属性重置为当前外观的值。-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, 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, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
-
-
-
字段详细信息
-
ui
protected transient ComponentUI ui
该组件的外观和感觉委托。
-
listenerList
protected EventListenerList listenerList
此组件的事件侦听器的列表。
-
WHEN_FOCUSED
public static final int WHEN_FOCUSED
用于registerKeyboardAction
常量,这意味着当组件具有焦点时应该调用该命令。- 另请参见:
- Constant Field Values
-
WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
public static final int WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
常量用于registerKeyboardAction
,这意味着当接收组件是聚焦组件的祖先或者本身是聚焦组件时,应该调用该命令。- 另请参见:
- Constant Field Values
-
WHEN_IN_FOCUSED_WINDOW
public static final int WHEN_IN_FOCUSED_WINDOW
常量用于registerKeyboardAction
,这意味着当接收组件在具有焦点的窗口中或者本身是聚焦组件时,应该调用该命令。- 另请参见:
- Constant Field Values
-
UNDEFINED_CONDITION
public static final int UNDEFINED_CONDITION
一些API使用的常量意味着没有定义任何条件。- 另请参见:
- Constant Field Values
-
TOOL_TIP_TEXT_KEY
public static final String TOOL_TIP_TEXT_KEY
当光标在组件上方时显示的注释,也称为“值提示”,“天桥帮助”或“飞越标签”。- 另请参见:
- Constant Field Values
-
-
构造方法详细信息
-
JComponent
public JComponent()
默认JComponent
构造函数。 这个构造函数在调用Container
构造函数之前做的很少。 例如,初始布局管理器是null
。 但是,它将组件的区域设置属性设置为返回的值为JComponent.getDefaultLocale
。- 另请参见:
-
getDefaultLocale()
-
-
方法详细信息
-
setInheritsPopupMenu
@BeanProperty(description="Whether or not the JPopupMenu is inherited") public void setInheritsPopupMenu(boolean value)
设置getComponentPopupMenu
是否应该委托给父,如果此组件没有分配JPopupMenu
。默认值为false,但是实现为
JComponent
的数量的一些JComponent
子类可能将其设置为true。这是一个绑定属性。
- 参数
-
value
- 是否继承JPopupMenu - 从以下版本开始:
- 1.5
- 另请参见:
-
setComponentPopupMenu(javax.swing.JPopupMenu)
-
getInheritsPopupMenu
public boolean getInheritsPopupMenu()
如果JPopupMenu应该从父级继承,则返回true。- 结果
- 如果JPopupMenu应该从父级继承,则为true
- 从以下版本开始:
- 1.5
- 另请参见:
-
setComponentPopupMenu(javax.swing.JPopupMenu)
-
setComponentPopupMenu
@BeanProperty(preferred=true, description="Popup to show") public void setComponentPopupMenu(JPopupMenu popup)
设置JPopupMenu
为这个JComponent
。 用户界面负责注册绑定并添加必要的监听器,以便在适当的时候显示JPopupMenu
。 当显示JPopupMenu
取决于外观和感觉:有些可能会在鼠标事件上显示,有些可能会启用键绑定。如果
popup
为空,并且getInheritsPopupMenu
返回true,则getComponentPopupMenu
将被委派给父级。 这提供了一种使所有子组件继承父级的弹出菜单的方法。这是一个绑定属性。
- 参数
-
popup
- - 将分配给此组件的弹出窗口可能为null - 从以下版本开始:
- 1.5
- 另请参见:
-
getComponentPopupMenu()
-
getComponentPopupMenu
public JPopupMenu getComponentPopupMenu()
返回分配给此组件的JPopupMenu
。 如果此组件没有分配JPopupMenu
,并且getInheritsPopupMenu
为true,则返回getParent().getComponentPopupMenu()
(假设父级有效。)- 结果
-
JPopupMenu
分配给此组件或null
如果没有弹出分配 - 从以下版本开始:
- 1.5
- 另请参见:
-
setComponentPopupMenu(javax.swing.JPopupMenu)
-
updateUI
public void updateUI()
将UI属性重置为当前外观的值。JComponent
子类必须重写此方法,如下所示:public void updateUI() { setUI((SliderUI)UIManager.getUI(this); }
-
getUI
public ComponentUI getUI()
返回渲染此组件的外观和委托。- 结果
-
提供此组件的
ComponentUI
对象 - 从以下版本开始:
- 9
-
setUI
@BeanProperty(hidden=true, visualUpdate=true, description="The component\'s look and feel delegate.") protected void setUI(ComponentUI newUI)
设置该组件的外观和感觉委托。JComponent
子类通常会覆盖此方法来缩小参数类型。 例如,在JSlider
:public void setUI(SliderUI newUI) { super.setUI(newUI); }
另外,
JComponent
子类必须提供返回正确类型的getUI
方法。 例如:public SliderUI getUI() { return (SliderUI)ui; }
- 参数
-
newUI
- 新的UI委托 - 另请参见:
-
updateUI()
,UIManager.getLookAndFeel()
,UIManager.getUI(javax.swing.JComponent)
-
getUIClassID
@BeanProperty(bound=false, expert=true, description="UIClassID") public String getUIClassID()
返回UIDefaults
键,用于查找定义该组件外观的swing.plaf.ComponentUI
类的名称。 大多数应用程序永远不需要调用此方法。 支持可插拔外观的JComponent
子类应该覆盖此方法以返回映射到定义其外观的ComponentUI
子类的UIDefaults
密钥。- 结果
-
UIDefaults
键为ComponentUI
子类 - 另请参见:
-
UIDefaults.getUI(javax.swing.JComponent)
-
getComponentGraphics
protected Graphics getComponentGraphics(Graphics g)
返回用于绘制该组件的图形对象。 如果DebugGraphics
打开,我们将在必要时创建一个新的DebugGraphics
对象。 否则我们只需配置指定的图形对象的前景和字体。- 参数
-
g
- 原来的Graphics
对象 - 结果
-
为此组件配置的
Graphics
对象
-
paintComponent
protected void paintComponent(Graphics g)
调用UInull
的paint方法,如果UInull
。 我们通过委托一份Graphics
对象的副本,以保护其他油漆代码免受不可撤销的更改(例如,Graphics.translate
)。如果你在一个子类中重写这个,你不应该对
Graphics
传递的永久性更改。 例如,您不应该更改剪辑Rectangle
或修改转换。 如果您需要执行这些操作,您可能会发现从Graphics
中传递的操作更容易创建一个新的Graphics
并进行操作。 此外,如果您不调用super的实现,则必须遵守不透明属性,即如果此组件不透明,则必须以非不透明颜色完全填写背景。 如果您不遵守不透明属性,您将可能会看到视觉工件。在
Graphics
对象中传递的对象可能具有除安装的标识变换之外的变换。 在这种情况下,如果累积应用另一个变换,您可能会得到意想不到的结果。- 参数
-
g
- 要保护的Graphics
对象 - 另请参见:
-
paint(java.awt.Graphics)
,ComponentUI
-
paintChildren
protected void paintChildren(Graphics g)
涂抹这个组件的孩子。 如果shouldUseBuffer
为真,则没有组件祖先具有缓冲区,并且子组件可以使用缓冲区(如果有)。 否则,一个祖先有一个缓冲区当前正在使用,孩子不应该使用缓冲区来绘制。- 参数
-
g
- 要绘制的Graphics
上下文 - 另请参见:
-
paint(java.awt.Graphics)
,Container.paint(java.awt.Graphics)
-
paintBorder
protected void paintBorder(Graphics g)
绘制组件的边框。如果你在一个子类中重写这个,你不应该对
Graphics
传递的永久性更改。 例如,您不应该更改剪辑Rectangle
或修改转换。 如果您需要执行这些操作,您可能会发现从Graphics
中传递的操作更容易创建一个新的Graphics
并进行操作。- 参数
-
g
- 要绘制的Graphics
上下文 - 另请参见:
-
paint(java.awt.Graphics)
,setBorder(javax.swing.border.Border)
-
update
public void update(Graphics g)
致电paint
。 不清楚背景,但请参阅ComponentUI.update
,由paintComponent
。- 重写:
-
update
在Container
- 参数
-
g
- 要绘制的Graphics
上下文 - 另请参见:
-
paint(java.awt.Graphics)
,paintComponent(java.awt.Graphics)
,ComponentUI
-
paint
public void paint(Graphics g)
由Swing调用来绘制组件。 应用程序不应直接调用paint
,而应使用repaint
方法来调度组件进行重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)
-
printAll
public void printAll(Graphics g)
调用此方法打印组件。 该方法在组件上调用print
。- 重写:
-
printAll
在Component
- 参数
-
g
- 要绘制的Graphics
上下文 - 另请参见:
-
print(java.awt.Graphics)
,printComponent(java.awt.Graphics)
,printBorder(java.awt.Graphics)
,printChildren(java.awt.Graphics)
-
print
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
传递。- 重写:
-
print
在Container
- 参数
-
g
- 要绘制的Graphics
上下文 - 另请参见:
-
printComponent(java.awt.Graphics)
,printBorder(java.awt.Graphics)
,printChildren(java.awt.Graphics)
,isPaintingForPrint()
-
printComponent
protected void printComponent(Graphics g)
这在打印操作期间被调用。 这是为了在组件上调用paintComponent
实现的。 如果您希望在打印时添加特殊的绘画行为,请覆盖此项。- 参数
-
g
- 要绘制的Graphics
上下文 - 从以下版本开始:
- 1.3
- 另请参见:
-
print(java.awt.Graphics)
-
printChildren
protected void printChildren(Graphics g)
打印此组件的子项。 这是为了在组件上调用paintChildren
来实现的。 如果您希望以不同于绘画的方式打印孩子,请覆盖此项。- 参数
-
g
- 要绘制的Graphics
上下文 - 从以下版本开始:
- 1.3
- 另请参见:
-
print(java.awt.Graphics)
-
printBorder
protected void printBorder(Graphics g)
打印组件的边框。 这是为了在组件上调用paintBorder
。 如果您希望以不同的方式打印边框,则覆盖此项。- 参数
-
g
- 要绘制的Graphics
上下文 - 从以下版本开始:
- 1.3
- 另请参见:
-
print(java.awt.Graphics)
-
isPaintingTile
@BeanProperty(bound=false) public boolean isPaintingTile()
如果组件当前正在绘制图块,则返回true。 如果此方法返回true,则将再次为另一个tile调用paint。 如果不绘制瓷砖,或者如果最后一个瓷砖被绘制,则此方法返回false。 使用这种方法来保持一些可能需要的状态。- 结果
- 如果组件当前正在绘制图块,则为true,否则为false
-
isPaintingForPrint
@BeanProperty(bound=false) public final boolean isPaintingForPrint()
如果此组件上的当前绘画操作是print
操作的一部分,则返回true
。 当您要自定义您打印的内容与屏幕上显示的内容时,此方法很有用。您可以通过监听名称为
"paintingForPrint"
此组件上的属性更改事件来检测此属性的值的更改。注意:此方法提供了由其他高级别Swing打印API提供的功能。 但是,它严格执行绘画,不应该像提供更高级别的打印流程的信息那样混淆。 例如,
JTable.print()
操作不一定会导致完整组件的连续呈现,并且该方法的返回值在该操作期间可以多次更改。 打印过程正在进行时,甚至可以将组件涂到屏幕上。 在这种情况下,该方法的返回值为true
当且仅当表被打印作为打印过程的一部分时。- 结果
- 如果此组件上的当前绘画操作是打印操作的一部分,则为true
- 从以下版本开始:
- 1.6
- 另请参见:
-
print(java.awt.Graphics)
-
isManagingFocus
@Deprecated @BeanProperty(bound=false) public boolean isManagingFocus()
已过时。 截至1.4,由Component.setFocusTraversalKeys(int, Set)
和Container.setFocusCycleRoot(boolean)
。在1.4版本中,重点子系统被重新设计。 有关详细信息,请参阅“Java教程”中的“ How to Use the Focus Subsystem ”一节。将此
JComponent
的焦点遍历键更改为CTRL + TAB和CTRL + SHIFT + TAB。 在计算焦点遍历周期时,还可以防止SortingFocusTraversalPolicy
考虑此JComponent的后代。
-
setNextFocusableComponent
@Deprecated public void setNextFocusableComponent(Component aComponent)
已过时。 截至1.4,由FocusTraversalPolicy
替换在1.4版本中,重点子系统被重新设计。 有关更多信息,请参阅“Java教程”中的“ How to Use the Focus Subsystem ”一节。通过无条件地将指定的
Component
设置为下一个Component
中的Component
,并覆盖该JComponent
的焦点遍历周期的默认FocusTraversalPolicy
JComponent
,而该JComponent
为该周期中指定的Component
以前的Component
。- 参数
-
aComponent
-Component
应该遵循这个JComponent
在焦点遍历周期 - 另请参见:
-
getNextFocusableComponent()
,FocusTraversalPolicy
-
getNextFocusableComponent
@Deprecated public Component getNextFocusableComponent()
已过时。 截至1.4,由FocusTraversalPolicy
取代。在1.4版本中,重点子系统被重新设计。 有关详细信息,请参阅“Java教程”中的“ How to Use the Focus Subsystem ”一节。返回
Component
设置由以前的电话setNextFocusableComponent(Component)
在这JComponent
。- 结果
-
Component
将在焦点遍历周期中跟随此JComponent
,如果没有明确指定,null
- 另请参见:
-
setNextFocusableComponent(java.awt.Component)
-
setRequestFocusEnabled
public void setRequestFocusEnabled(boolean requestFocusEnabled)
提供这个JComponent
是否应该获得关注的提示。 这只是一个提示,由消费者要求重点关注这个财产。 这通常适用于鼠标操作,但不是键盘操作。 例如,在鼠标操作期间请求焦点,外观和感觉可以验证此属性是否为真。 如果您不想在JComponent
上按鼠标来窃取焦点,则通常会使用这些值,但是希望通过键盘可以遍历JComponent
。 如果您不想要这个JComponent
,请改用setFocusable
方法。有关详细信息,请参阅“Java教程”中的“ How to Use the Focus Subsystem ”一节。
- 参数
-
requestFocusEnabled
- 指示您是否希望此JComponent
可JComponent
- 另请参见:
-
Focus Specification ,
Component.setFocusable(boolean)
-
isRequestFocusEnabled
public boolean isRequestFocusEnabled()
- 结果
-
true
如果这个组件应该得到焦点,否则返回false
- 另请参见:
-
setRequestFocusEnabled(boolean)
, Focus Specification ,Component.isFocusable()
-
requestFocus
public void requestFocus()
请求此Component
获取输入焦点。 有关此方法的完整说明,请参阅Component.requestFocus()
。请注意,不鼓励使用此方法,因为它的行为是平台依赖的。 相反,我们推荐使用
requestFocusInWindow()
。 如果您想了解更多关于焦点的信息,请参阅“Java教程”中的“ How to Use the Focus Subsystem ”一节。- 重写:
-
requestFocus
在Component
- 从以下版本开始:
- 1.4
- 另请参见:
-
Component.requestFocusInWindow()
,Component.requestFocusInWindow(boolean)
-
requestFocus
public boolean requestFocus(boolean temporary)
请求此Component
获取输入焦点。 有关此方法的完整说明,请参阅Component.requestFocus(boolean)
。请注意,不鼓励使用此方法,因为它的行为是平台依赖的。 相反,我们建议使用
requestFocusInWindow(boolean)
。 如果您想了解更多关于焦点的信息,请参阅“Java教程”中的“ How to Use the Focus Subsystem”部分。- 重写:
-
requestFocus
在Component
- 参数
-
temporary
- 指示焦点更改是否为临时的布尔值 - 结果
-
false
如果焦点更改请求保证失败;true
如果有可能成功 - 从以下版本开始:
- 1.4
- 另请参见:
-
Component.requestFocusInWindow()
,Component.requestFocusInWindow(boolean)
-
requestFocusInWindow
public boolean requestFocusInWindow()
要求这个Component
获得输入焦点。 有关此方法的完整说明,请参阅Component.requestFocusInWindow()
。如果您想了解更多关于焦点的信息,请参阅“Java教程”中的“ How to Use the Focus Subsystem ”一节。
- 重写:
-
requestFocusInWindow
在Component
- 结果
-
false
如果焦点更改请求保证失败;true
如果可能成功 - 从以下版本开始:
- 1.4
- 另请参见:
-
Component.requestFocusInWindow()
,Component.requestFocusInWindow(boolean)
-
requestFocusInWindow
protected boolean requestFocusInWindow(boolean temporary)
请求此Component
获取输入焦点。 有关此方法的完整说明,请参阅Component.requestFocusInWindow(boolean)
。如果您想了解更多关于焦点的信息,请参阅“Java教程”中的“ How to Use the Focus Subsystem ”一节。
- 重写:
-
requestFocusInWindow
在Component
- 参数
-
temporary
- 指示焦点更改是否为临时的布尔值 - 结果
-
false
如果焦点更改请求保证失败;true
如果可能成功 - 从以下版本开始:
- 1.4
- 另请参见:
-
Component.requestFocusInWindow()
,Component.requestFocusInWindow(boolean)
-
grabFocus
public void grabFocus()
请求此组件获取输入焦点,并且该组件的顶级祖先成为关注的窗口。 此组件必须可显示,可见和可聚焦才能被授予请求。该方法旨在用于焦点实现。 客户端代码不应该使用这种方法; 相反,它应该使用
requestFocusInWindow()
。- 另请参见:
-
requestFocusInWindow()
-
setVerifyInputWhenFocusTarget
@BeanProperty(description="Whether the Component verifies input before accepting focus.") public void setVerifyInputWhenFocusTarget(boolean verifyInputWhenFocusTarget)
设置该值以指示在此组件请求焦点之前是否调用当前焦点所有者的输入验证器。 默认值为true。 在诸如取消按钮或滚动条的组件上设置为假,即使当前焦点所有者的输入未被该组件的输入验证器“传递”时,也应激活。- 参数
-
verifyInputWhenFocusTarget
-verifyInputWhenFocusTarget
属性的值 - 从以下版本开始:
- 1.3
- 另请参见:
-
InputVerifier
,setInputVerifier(javax.swing.InputVerifier)
,getInputVerifier()
,getVerifyInputWhenFocusTarget()
-
getVerifyInputWhenFocusTarget
public boolean getVerifyInputWhenFocusTarget()
返回指示在此组件请求焦点之前是否调用当前焦点所有者的输入验证器的值。- 结果
-
价值
verifyInputWhenFocusTarget
属性 - 从以下版本开始:
- 1.3
- 另请参见:
-
InputVerifier
,setInputVerifier(javax.swing.InputVerifier)
,getInputVerifier()
,setVerifyInputWhenFocusTarget(boolean)
-
getFontMetrics
public FontMetrics getFontMetrics(Font font)
获取FontMetrics
指定的Font
。- 重写:
-
getFontMetrics
在Component
- 参数
-
font
- 要获取字体指标的字体 - 结果
-
font
的字体指标 - 异常
-
NullPointerException
- 如果font
为空 - 从以下版本开始:
- 1.5
- 另请参见:
-
Component.getFont()
,ComponentPeer.getFontMetrics(Font)
,Toolkit.getFontMetrics(Font)
-
setPreferredSize
@BeanProperty(preferred=true, description="The preferred size of the component.") public void setPreferredSize(Dimension preferredSize)
设置此组件的首选大小。 如果preferredSize
是null
,则会询问UI的首选大小。- 重写:
-
setPreferredSize
在Component
- 参数
-
preferredSize
- 新的首选大小,或null - 另请参见:
-
Component.getPreferredSize()
,Component.isPreferredSizeSet()
-
getPreferredSize
public Dimension getPreferredSize()
如果preferredSize
已被设置为非null
值,则返回值。 如果UI代表的getPreferredSize
方法返回一个非null
值,那么返回那个; 否则推迟到组件的布局管理器。- 重写:
-
getPreferredSize
在Container
- 结果
-
的价值
preferredSize
属性 - 另请参见:
-
setPreferredSize(java.awt.Dimension)
,ComponentUI
-
setMaximumSize
@BeanProperty(description="The maximum size of the component.") public void setMaximumSize(Dimension maximumSize)
将此组件的最大大小设置为常量值。 后续调用getMaximumSize
将始终返回此值; 组件的UI将不会被要求进行计算。 将最大大小设置为null
可恢复默认行为。- 重写:
-
setMaximumSize
在Component
- 参数
-
maximumSize
- a包含所需最大允许尺寸的Dimension
- 另请参见:
-
getMaximumSize()
-
getMaximumSize
public Dimension getMaximumSize()
如果最大大小设置为非null
值,则返回。 如果UIgetMaximumSize
的getMaximumSize
方法返回非null
值,则返回该值; 否则推迟到组件的布局管理器。- 重写:
-
getMaximumSize
在Container
- 结果
-
该值为
maximumSize
属性 - 另请参见:
-
setMaximumSize(java.awt.Dimension)
,ComponentUI
-
setMinimumSize
@BeanProperty(description="The minimum size of the component.") public void setMinimumSize(Dimension minimumSize)
将此组件的最小大小设置为常量值。 后续调用getMinimumSize
将始终返回此值; 组件的UI将不会被要求进行计算。 将最小大小设置为null
可恢复默认行为。- 重写:
-
setMinimumSize
在Component
- 参数
-
minimumSize
- 这个组件的最小尺寸 - 另请参见:
-
getMinimumSize()
-
getMinimumSize
public Dimension getMinimumSize()
如果最小尺寸设置为非null
值,则返回。 如果UIgetMinimumSize
的getMinimumSize
方法返回一个非null
值,那么返回那个; 否则推迟到组件的布局管理器。- 重写:
-
getMinimumSize
在Container
- 结果
-
该值为
minimumSize
属性 - 另请参见:
-
setMinimumSize(java.awt.Dimension)
,ComponentUI
-
contains
public boolean contains(int x, int y)
为UI代理提供一个机会,以便为鼠标处理定义该组件的精确形状。- 重写:
-
contains
中的Component
- 参数
-
x
- 点的 x坐标 -
y
- 点的 y坐标 - 结果
- 如果该组件逻辑上包含x,y,则为true
- 另请参见:
-
Component.contains(int, int)
,ComponentUI
-
setBorder
@BeanProperty(preferred=true, visualUpdate=true, description="The component\'s border.") public void setBorder(Border border)
设置此组件的边框。Border
对象负责定义组件的插入(覆盖直接在组件上设置的任何Border
),并且可选地在这些插入的边界内渲染任何边框装饰。 应使用边框(而不是插图)来创建摆动部件的装饰性和非装饰性(如边距和填充)区域。 复合边框可用于在单个组件中嵌套多个边框。虽然技术上您可以在
JComponent
继承的任何对象上设置边框,但许多标准Swing组件的外观和感觉实现在用户设置边框上不能正常工作。 一般来说,当您要在JPanel
或JLabel
之外的标准Swing组件上设置边框时,我们建议您将组件置于JPanel
,并将边框设置为JPanel
。这是一个绑定属性。
- 参数
-
border
- 要为此组件渲染的边框 - 另请参见:
-
Border
,CompoundBorder
-
getBorder
public Border getBorder()
如果当前没有设置边框,则返回此组件的边框或null
。- 结果
- 该组件的边框对象
- 另请参见:
-
setBorder(javax.swing.border.Border)
-
getInsets
@BeanProperty(expert=true) public Insets getInsets()
如果在此组件上设置了边框,则返回边框的插入; 否则调用super.getInsets
。- 重写:
-
getInsets
中的Container
- 结果
- insets属性的值
- 另请参见:
-
setBorder(javax.swing.border.Border)
-
getInsets
public Insets getInsets(Insets insets)
返回包含此组件的插入值的Insets
对象。 如果可能的话,传入的Insets
对象将被重用。 调用方法不能假定相同的对象将被返回。 此对象内的所有现有值都将被覆盖。 如果insets
为空,则会分配一个新的。- 参数
-
insets
-Insets
对象,可以重复使用 - 结果
-
Insets
对象 - 另请参见:
-
getInsets()
-
getAlignmentY
public float getAlignmentY()
覆盖Container.getAlignmentY
以返回垂直对齐方式。- 重写:
-
getAlignmentY
在Container
- 结果
-
该值为
alignmentY
属性 - 另请参见:
-
setAlignmentY(float)
,Component.getAlignmentY()
-
setAlignmentY
@BeanProperty(description="The preferred vertical alignment of the component.") public void setAlignmentY(float alignmentY)
设置垂直对齐。- 参数
-
alignmentY
- 新的垂直对齐 - 另请参见:
-
getAlignmentY()
-
getAlignmentX
public float getAlignmentX()
覆盖Container.getAlignmentX
以返回水平对齐。- 重写:
-
getAlignmentX
在Container
- 结果
-
该值为
alignmentX
属性 - 另请参见:
-
setAlignmentX(float)
,Component.getAlignmentX()
-
setAlignmentX
@BeanProperty(description="The preferred horizontal alignment of the component.") public void setAlignmentX(float alignmentX)
设置水平对齐。- 参数
-
alignmentX
- 新的水平对齐 - 另请参见:
-
getAlignmentX()
-
setInputVerifier
@BeanProperty(description="The component\'s input verifier.") public void setInputVerifier(InputVerifier inputVerifier)
设置此组件的输入验证器。- 参数
-
inputVerifier
- 新的输入验证器 - 从以下版本开始:
- 1.3
- 另请参见:
-
InputVerifier
-
getInputVerifier
public InputVerifier getInputVerifier()
返回此组件的输入验证器。- 结果
-
inputVerifier
属性 - 从以下版本开始:
- 1.3
- 另请参见:
-
InputVerifier
-
getGraphics
@BeanProperty(bound=false) public Graphics getGraphics()
返回此组件的图形上下文,可用于绘制组件。 使用此方法获取一个Graphics
对象,然后调用该对象上的操作来绘制组件。- 重写:
-
getGraphics
在Component
- 结果
- 这个组件图形上下文
- 另请参见:
-
Component.paint(java.awt.Graphics)
-
setDebugGraphicsOptions
@BeanProperty(bound=false, preferred=true, enumerationValues={"DebugGraphics.NONE_OPTION","DebugGraphics.LOG_OPTION","DebugGraphics.FLASH_OPTION","DebugGraphics.BUFFERED_OPTION"}, description="Diagnostic options for graphics operations.") public void setDebugGraphicsOptions(int debugOptions)
启用或禁用有关组件或其子项之间执行的每个图形操作的诊断信息。- 参数
-
debugOptions
- 确定组件应如何显示信息; 以下选项之一:- DebugGraphics.LOG_OPTION - 导致打印文本消息。
- DebugGraphics.FLASH_OPTION - 使绘图闪烁几次。
- DebugGraphics.BUFFERED_OPTION - 创建一个
ExternalWindow
,显示在View的屏幕外缓冲区上执行的操作。 - DebugGraphics.NONE_OPTION禁用调试。
- 值为0会导致调试选项不会更改。
debugOptions
是按位OR'进入当前值
-
getDebugGraphicsOptions
public int getDebugGraphicsOptions()
返回图形调试状态。- 结果
-
0或更多以下选项的按位OR'标志:
- DebugGraphics.LOG_OPTION - 导致打印文本消息。
- DebugGraphics.FLASH_OPTION - 使绘图闪烁几次。
- DebugGraphics.BUFFERED_OPTION - 创建一个
ExternalWindow
,显示在View的屏幕外缓冲区上执行的操作。 - DebugGraphics.NONE_OPTION禁用调试。
- 值为0会导致调试选项不会更改。
- 另请参见:
-
setDebugGraphicsOptions(int)
-
registerKeyboardAction
public void registerKeyboardAction(ActionListener anAction, String aCommand, KeyStroke aKeyStroke, int aCondition)
此方法现已过时,请使用getActionMap()
和getInputMap()
的组合进行类似的操作。 例如,绑定KeyStroke
aKeyStroke
至Action
anAction
现在使用:component.getInputMap().put(aKeyStroke, aCommand); component.getActionMap().put(aCommmand, anAction);
以上假设您希望绑定适用于WHEN_FOCUSED
。 要为其他焦点状态注册绑定,请使用采用整数的getInputMap
方法。注册新的键盘操作。
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
-
registerKeyboardAction
public void registerKeyboardAction(ActionListener anAction, KeyStroke aKeyStroke, int aCondition)
此方法现已过时,请使用getActionMap()
和getInputMap()
的组合进行类似的操作。- 参数
-
anAction
- 要注册给予按键和条件的动作 -
aKeyStroke
- aKeyStroke
-
aCondition
- 与给定按键和动作相关联的条件 - 另请参见:
-
getActionMap()
,getInputMap(int)
-
unregisterKeyboardAction
public void unregisterKeyboardAction(KeyStroke aKeyStroke)
这种方法现在已经过时了。 要取消注册现有的绑定,您可以从ActionMap/InputMap
删除绑定,或者放置一个虚拟绑定InputMap
。 从InputMap
删除绑定允许父对象InputMap
的绑定是活动的,而在InputMap
放置一个虚拟绑定有效地禁止绑定从不发生。取消注册键盘操作。 这将删除从结合
ActionMap
(如果它存在)以及所述InputMap
秒。- 参数
-
aKeyStroke
- 取消注册其键盘操作的按键
-
getRegisteredKeyStrokes
@BeanProperty(bound=false) public KeyStroke[] getRegisteredKeyStrokes()
返回将启动注册操作的KeyStrokes
。
-
getConditionForKeyStroke
public int getConditionForKeyStroke(KeyStroke aKeyStroke)
返回确定是否发生注册的操作以响应指定的击键的条件。对于Java 2平台
KeyStroke
可以与多个条件相关联。 例如,'a'可以绑定两个条件WHEN_FOCUSED
和WHEN_IN_FOCUSED_WINDOW
条件。- 参数
-
aKeyStroke
- 请求动作击键条件的按键 - 结果
- 动作击键条件
-
getActionForKeyStroke
public ActionListener getActionForKeyStroke(KeyStroke aKeyStroke)
返回将执行为给定键击注册的操作的对象。- 参数
-
aKeyStroke
- 返回侦听器的按键 - 结果
-
当键击发生时调用
ActionListener
对象
-
resetKeyboardActions
public void resetKeyboardActions()
取消注册第一层InputMaps
和ActionMap
中的所有绑定。 这具有删除任何本地绑定的效果,并允许在父InputMap/ActionMaps
(UI通常在第二层中定义)中定义的绑定持续存在。
-
setInputMap
public final void setInputMap(int condition, InputMap map)
在InputMap
到condition
的条件下condition
map
。 一个null
值意味着你不想使用任何绑定,甚至从UI。 这不会重新安装UIInputMap
(如果有的话)。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
不是上述规定的合法价值之一 - 从以下版本开始:
- 1.3
-
-
getInputMap
public final InputMap getInputMap(int condition)
返回在InputMap
期间使用的condition
。- 参数
-
condition
- WHEN_IN_FOCUSED_WINDOW,WHEN_FOCUSED,WHEN_ANCESTOR_OF_FOCUSED_COMPONENT之一 - 结果
-
InputMap
为指定的condition
- 从以下版本开始:
- 1.3
-
getInputMap
public final InputMap getInputMap()
返回当组件具有焦点时使用的InputMap
。 这是getInputMap(WHEN_FOCUSED)
方便方法。- 结果
-
当组件有焦点时使用的是
InputMap
- 从以下版本开始:
- 1.3
-
setActionMap
public final void setActionMap(ActionMap am)
将ActionMap
设为am
。 这没有将am
的父级设置为从UI(如果有的话)的ActionMap
则由呼叫者完成此操作。- 参数
-
am
- 新的ActionMap
- 从以下版本开始:
- 1.3
-
getActionMap
public final ActionMap getActionMap()
返回ActionMap
用于确定什么Action
为特定的KeyStroke
绑定。 返回的ActionMap
,除非另有规定,否则将从设置为父级的UI设置为ActionMap
。- 结果
-
包含键/动作绑定的
ActionMap
- 从以下版本开始:
- 1.3
-
getBaseline
public int getBaseline(int width, int height)
返回基线。 基线是从组件的顶部测量的。 该方法主要用于LayoutManager
以使组件沿其基线对齐。 返回值小于0表示此组件没有合理的基线,并且LayoutManager
s不应该将该组件对准其基线。该方法调用同名的
ComponentUI
方法。 如果此组件没有ComponentUI
-1将被返回。 如果返回值> = 0,则组件具有任何大小的有效基准> =最小大小,而getBaselineResizeBehavior
可用于确定基准如何随大小而变化。- 重写:
-
getBaseline
在Component
- 参数
-
width
- 获取基准的宽度 -
height
- 获取基准的高度 - 结果
- 基线或<0表示没有合理的基线
- 异常
-
IllegalArgumentException
- 如果宽度或高度<0 - 从以下版本开始:
- 1.6
- 另请参见:
-
getBaselineResizeBehavior()
,FontMetrics
-
getBaselineResizeBehavior
@BeanProperty(bound=false) public Component.BaselineResizeBehavior getBaselineResizeBehavior()
返回一个枚举,指示组件的基线如何随着大小的变化而改变。 此方法主要用于布局管理器和GUI构建器。该方法调用同名的
ComponentUI
方法。 如果该组件没有ComponentUI
BaselineResizeBehavior.OTHER
将被退回。 子类不应该返回null
; 如果基线不能计算返回BaselineResizeBehavior.OTHER
。 呼叫者应该首先使用getBaseline
询问基线,如果返回值> = 0,则使用此方法。 该方法可以返回BaselineResizeBehavior.OTHER
以外的值,即使getBaseline
返回小于0的值。- 重写:
-
getBaselineResizeBehavior
Component
- 结果
- 一个枚举,指示基准随着组件大小的变化而改变
- 从以下版本开始:
- 1.6
- 另请参见:
-
getBaseline(int, int)
-
requestDefaultFocus
@Deprecated public boolean requestDefaultFocus()
已过时。 截至1.4,由FocusTraversalPolicy.getDefaultComponent(Container).requestFocus()
替代在1.4版本中,重点子系统被重新设计。 有关更多信息,请参阅“Java教程”中的“ How to Use the Focus Subsystem ”一节。请求专注于这个
JComponent
的FocusTraversalPolicy
的默认值Component
。 如果这个JComponent
是焦点循环根,则使用其FocusTraversalPolicy
。 否则,FocusTraversalPolicy
此的JComponent
的焦点循环根祖先被使用。- 结果
- 如果此组件可以请求获取输入焦点,则为true,否则为false
- 另请参见:
-
FocusTraversalPolicy.getDefaultComponent(java.awt.Container)
-
setVisible
@BeanProperty(hidden=true, visualUpdate=true) public void setVisible(boolean aFlag)
使组件可见或不可见。 覆盖Component.setVisible
。- 重写:
-
setVisible
在Component
- 参数
-
aFlag
- 真实使组件可见; 假使它看不见 - 另请参见:
-
Component.isVisible()
,Component.invalidate()
-
setEnabled
@BeanProperty(expert=true, preferred=true, visualUpdate=true, description="The enabled state of the component.") public void setEnabled(boolean enabled)
设置是否启用此组件。 启用的组件可能会响应用户输入,而未启用的组件无法响应用户输入。 某些组件在禁用时可能会改变其视觉表示,以便向用户提供无法接受输入的反馈。注意:禁用组件不会禁用其子项。
注意:禁用轻量级组件不会阻止它接收MouseEvents。
- 重写:
-
setEnabled
在Component
- 参数
-
enabled
- 如果此组件应启用,enabled
true,否则为false - 另请参见:
-
Component.isEnabled()
,Component.isLightweight()
-
setForeground
@BeanProperty(preferred=true, visualUpdate=true, description="The foreground color of the component.") public void setForeground(Color fg)
设置此组件的前景颜色。 这是符合这种财产的外观和感觉,有些人可能会选择忽略它。- 重写:
-
setForeground
在Component
- 参数
-
fg
- 所需的前景Color
- 另请参见:
-
Component.getForeground()
-
setBackground
@BeanProperty(preferred=true, visualUpdate=true, description="The background color of the component.") public void setBackground(Color bg)
设置此组件的背景颜色。 仅当组件不透明且仅由JComponent
或ComponentUI
实现的子类使用时才使用背景颜色。JComponent
直接子类必须覆盖paintComponent
以符合此属性。这是符合这种财产的外观和感觉,有些人可能会选择忽略它。
- 重写:
-
setBackground
在Component
- 参数
-
bg
- 期望的背景Color
- 另请参见:
-
Component.getBackground()
,setOpaque(boolean)
-
setFont
@BeanProperty(preferred=true, visualUpdate=true, description="The font for the component.") public void setFont(Font font)
设置此组件的字体。- 重写:
-
setFont
在Container
- 参数
-
font
- 该组件所需的Font
- 另请参见:
-
Component.getFont()
-
getDefaultLocale
public static Locale getDefaultLocale()
返回用于在创建时初始化每个JComponent的locale属性的默认区域设置。 默认语言环境具有“AppContext”范围,以便小程序(以及可能在单个VM中运行的多个轻量级应用程序)可以拥有自己的设置。 小程序可以安全地更改其默认语言环境,因为它将对其他小程序(或浏览器)没有影响。- 结果
-
默认为
Locale
。 - 从以下版本开始:
- 1.4
- 另请参见:
-
setDefaultLocale(java.util.Locale)
,Component.getLocale()
,Component.setLocale(java.util.Locale)
-
setDefaultLocale
public static void setDefaultLocale(Locale l)
设置用于在创建时初始化每个JComponent的区域设置属性的默认区域设置。 初始值是VM的默认语言环境。 默认语言环境具有“AppContext”范围,以便小程序(以及可能在单个VM中运行的多个轻量级应用程序)可以拥有自己的设置。 小程序可以安全地更改其默认语言环境,因为它将对其他小程序(或浏览器)没有影响。- 参数
-
l
- 新组件所需的默认值Locale
。 - 从以下版本开始:
- 1.4
- 另请参见:
-
getDefaultLocale()
,Component.getLocale()
,Component.setLocale(java.util.Locale)
-
processComponentKeyEvent
protected void processComponentKeyEvent(KeyEvent e)
处理组件本身识别的任何关键事件。 这是在焦点经理之后调用的,任何感兴趣的听众都有机会偷走事件。 仅当事件尚未消耗时才调用此方法。 此方法在键盘UI逻辑之前被调用。这种方法是不执行任何操作的。 如果子类本身处理一些关键事件,通常会覆盖此方法。 如果事件被处理,它应该被消耗。
- 参数
-
e
- 要处理的事件
-
processKeyEvent
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()
-
processKeyBinding
protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed)
作为KeyEvent
e
的结果,调用处理ks
的键绑定。 获得适当的InputMap
,获取绑定,从ActionMap
获取操作,然后(如果发现操作并且组件已启用)将调用notifyAction
通知操作。- 参数
-
ks
- 查询KeyStroke
-
e
-KeyEvent
-
condition
- 以下值之一:- JComponent.WHEN_FOCUSED
- JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
- JComponent.WHEN_IN_FOCUSED_WINDOW
-
pressed
- 如果按下键,则为true - 结果
- 如果对操作有约束力,并且该操作已启用,则为true
- 从以下版本开始:
- 1.3
-
setToolTipText
@BeanProperty(bound=false, preferred=true, description="The text to display in a tool tip.") public void setToolTipText(String text)
- 参数
-
text
- 要显示的字符串; 如果文本是null
,则该组件的工具提示已关闭 - 另请参见:
-
TOOL_TIP_TEXT_KEY
-
getToolTipText
public String getToolTipText()
返回已设置为setToolTipText
的工具提示字符串。- 结果
- 工具提示的文字
- 另请参见:
-
TOOL_TIP_TEXT_KEY
-
getToolTipText
public String getToolTipText(MouseEvent event)
返回要用作事件的工具提示的字符串。 默认情况下,这将返回任何使用setToolTipText
设置的字符串。 如果组件提供更广泛的API来支持不同位置的不同工具提示,则应该覆盖该方法。- 参数
-
event
-在MouseEvent
发起ToolTip
显示 - 结果
- 一个包含工具提示的字符串
-
getToolTipLocation
public Point getToolTipLocation(MouseEvent event)
返回此组件坐标系中的工具提示位置。 如果返回null
,Swing将选择一个位置。 默认实现返回null
。- 参数
-
event
-MouseEvent
导致ToolTipManager
显示工具提示 - 结果
-
总是返回
null
-
getPopupLocation
public Point getPopupLocation(MouseEvent event)
返回在该组件的坐标系中显示弹出菜单的首选位置。 这是符合这种财产的外观和感觉,有些人可能会选择忽略它。 如果是null
,外观会选择合适的位置。- 参数
-
event
-的MouseEvent
要显示触发弹出式或null
如果弹出不被示出为鼠标事件的结果 - 结果
-
位置显示
JPopupMenu
,或null
- 从以下版本开始:
- 1.5
-
createToolTip
public JToolTip createToolTip()
返回应用于显示工具提示的JToolTip
的实例。 组件通常不会覆盖此方法,但它可以用于使不同的工具提示以不同的方式显示。- 结果
-
JToolTip
用于显示此工具提示
-
scrollRectToVisible
public void scrollRectToVisible(Rectangle aRect)
向JComponent
的父母转发scrollRectToVisible()
消息。 可以对请求进行服务的组件(如JViewport
)将覆盖此方法并执行滚动。- 参数
-
aRect
- 可见Rectangle
- 另请参见:
-
JViewport
-
setAutoscrolls
@BeanProperty(bound=false, expert=true, description="Determines if this component automatically scrolls its contents when dragged.") public void setAutoscrolls(boolean autoscrolls)
设置autoscrolls
属性。 如果鼠标拖动到组件边界之外,并且鼠标移动暂停(当按钮继续按住时),如果鼠标拖动事件将被合成生成,则true
。 合成事件使得看起来拖动手势已经在组件边界被越过时建立的方向恢复。 支持自动滚动的组件必须通过使用包含鼠标事件位置的矩形来调用scrollRectToVisible
来处理mouseDragged
事件。 所有支持项目的选择,并且通常显示在Swing组件的JScrollPane
(JTable
,JList
,JTree
,JTextArea
,并JEditorPane
)已经处理鼠标这样拖事件。 要在任何其他组件中启用自动滚动,请添加一个调用scrollRectToVisible
的鼠标移动侦听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
-
getAutoscrolls
public boolean getAutoscrolls()
获取autoscrolls
属性。- 结果
-
该值为
autoscrolls
属性 - 另请参见:
-
JViewport
,setAutoscrolls(boolean)
-
setTransferHandler
@BeanProperty(hidden=true, description="Mechanism for transfer of data to and from the component") public void setTransferHandler(TransferHandler newHandler)
设置TransferHandler
,它支持通过剪切/复制/粘贴和拖放将数据传入和传出该组件。 如果组件不支持数据传输操作,则可能是null
。如果新的
TransferHandler
不是null
,则该方法还将在组件上安装一个新的DropTarget
,以通过TransferHandler
激活丢弃处理,并激活任何内置的支持(例如计算和显示潜在的丢弃位置)。 如果您不希望此组件以任何方式进行响应,您可以通过删除放置目标(setDropTarget(null)
)或取消激活(getDropTaget().setActive(false)
)来完全禁用丢弃支持。如果新的
TransferHandler
是null
,则此方法将删除放置目标。在两种情况下,此方法不会修改放置目标:首先,如果此组件上的现有放置目标由开发人员显式设置为
non-null
值。 二,系统属性suppressSwingDropSupport
为true
。 系统属性的默认值为false
。有关详细信息,请参阅“Java教程”中的“ How to Use Drag and Drop and Data Transfer ”一节。
- 参数
-
newHandler
- 新的TransferHandler
- 从以下版本开始:
- 1.4
- 另请参见:
-
TransferHandler
,getTransferHandler()
-
getTransferHandler
public TransferHandler getTransferHandler()
获取transferHandler
属性。- 结果
-
的价值
transferHandler
属性 - 从以下版本开始:
- 1.4
- 另请参见:
-
TransferHandler
,setTransferHandler(javax.swing.TransferHandler)
-
processMouseEvent
protected void processMouseEvent(MouseEvent e)
通过将此组件发送到任何已注册的MouseListener
对象来处理发生在该组件上的鼠标事件,有关此方法的完整说明,请参阅Component.processMouseEvent(MouseEvent)
。- 重写:
-
processMouseEvent
在Component
- 参数
-
e
- 鼠标事件 - 从以下版本开始:
- 1.5
- 另请参见:
-
Component.processMouseEvent(java.awt.event.MouseEvent)
-
processMouseMotionEvent
protected void processMouseMotionEvent(MouseEvent e)
处理鼠标运动事件,如MouseEvent.MOUSE_DRAGGED。- 重写:
-
processMouseMotionEvent
在Component
- 参数
-
e
-MouseEvent
- 另请参见:
-
MouseEvent
-
enable
@Deprecated public void enable()
已过时。 从JDK 1.1版开始,由java.awt.Component.setEnabled(boolean)
代替。
-
disable
@Deprecated public void disable()
已过时。 从JDK 1.1版开始,由java.awt.Component.setEnabled(boolean)
替代。
-
getClientProperty
public final Object getClientProperty(Object key)
使用指定的键返回属性的值。 只有添加了putClientProperty
属性将返回非null
值。- 参数
-
key
- 被查询 - 结果
-
该属性的值或
null
- 另请参见:
-
putClientProperty(java.lang.Object, java.lang.Object)
-
putClientProperty
public final void putClientProperty(Object key, Object value)
向此组件添加任意键/值“客户端属性”。get/putClientProperty
方法提供对每个实例的小型哈希表的访问。 调用者可以使用get / putClientProperty注释由另一个模块创建的组件。 例如,布局管理器可以以这种方式存储每个子约束。 例如:componentA.putClientProperty("to the left of", componentB);
如果值为null
此方法将删除该属性。 对客户端属性的更改将报告PropertyChange
事件。 属性名称(为了PropertyChange事件)为key.toString()
。clientProperty
字典不用于支持JComponent的大规模扩展,也不应该被认为是设计新组件时的子类化的替代方法。- 参数
-
key
- 新的客户端属性密钥 -
value
- 新的客户端属性值; 如果null
这个方法将删除该属性 - 另请参见:
-
getClientProperty(java.lang.Object)
,Container.addPropertyChangeListener(java.beans.PropertyChangeListener)
-
setFocusTraversalKeys
public void setFocusTraversalKeys(int id, Set<? extends AWTKeyStroke> keystrokes)
设置此组件给定遍历操作的焦点遍历键。 有关此方法的完整说明,请参阅Component.setFocusTraversalKeys(int, java.util.Set<? extends java.awt.AWTKeyStroke>)
。这个方法可能会抛出一个
ClassCastException
如果Object
在keystrokes
不是一个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事件,或者如果任何键击已经映射到此组件的另一个焦点遍历操作 - 从以下版本开始:
- 1.5
- 另请参见:
-
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS
,KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS
,KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS
-
isLightweightComponent
public static boolean isLightweightComponent(Component c)
如果此组件是轻量级的,则返回true,也就是说,如果该组件没有本机窗口系统对等体,则返回true。- 参数
-
c
- 要检查的Component
- 结果
- 如果该组件是轻量级的,则为true
-
reshape
@Deprecated public void reshape(int x, int y, int w, int h)
已过时。 截至JDK 5,由Component.setBounds(int, int, int, int)
替换。移动并调整此组件的大小。
描述从类复制:Component
重新整形这个组件的边界矩形。- 重写:
-
reshape
在Component
- 参数
-
x
- 新的水平位置 -
y
- 新的垂直位置 -
w
- 新的宽度 -
h
- 新的高度 - 另请参见:
-
Component.setBounds(int, int, int, int)
-
getBounds
public Rectangle getBounds(Rectangle rv)
将此组件的边界存储为“返回值”rv
并返回rv
。 如果rv
为null
新Rectangle
分配。 如果呼叫者想要避免在堆上分配新的Rectangle
对象,则此版本的getBounds
非常有用。
-
getSize
public Dimension getSize(Dimension rv)
将此组件的宽度/高度存储为“返回值”rv
并返回rv
。 如果rv
为null
则会分配一个新的Dimension
对象。 如果呼叫者想要避免在堆上分配新的Dimension
对象,则此版本的getSize
非常有用。
-
getLocation
public Point getLocation(Point rv)
将该组件的x,y原点存储到“返回值”rv
并返回rv
。 如果rv
为null
新Point
分配。 如果呼叫者想要避免在堆上分配新的Point
对象,则此版本的getLocation
非常有用。- 重写:
-
getLocation
在Component
- 参数
-
rv
- 修改为组件位置的返回值 - 结果
-
rv
-
getX
@BeanProperty(bound=false) public int getX()
返回组件原点的当前x坐标。 这种方法比component.getBounds().x
或component.getLocation().x
更component.getBounds().x
,因为它不会导致任何堆分配。
-
getY
@BeanProperty(bound=false) public int getY()
返回组件原点的当前y坐标。 这种方法比component.getBounds().y
或component.getLocation().y
更component.getBounds().y
,因为它不会导致任何堆分配。
-
getWidth
@BeanProperty(bound=false) public int getWidth()
返回此组件的当前宽度。 这种方法比component.getBounds().width
或component.getSize().width
更component.getBounds().width
,因为它不会导致任何堆分配。
-
getHeight
@BeanProperty(bound=false) public int getHeight()
返回此组件的当前高度。 这种方法比component.getBounds().height
或component.getSize().height
更component.getBounds().height
,因为它不会导致任何堆分配。
-
isOpaque
public boolean isOpaque()
如果此组件完全不透明,则返回true。不透明组件描绘其矩形界限内的每个像素。 非不透明组件仅绘制其像素的子集,或者根本不绘制其子像素,允许其下方的像素“显示”。 因此,不完全绘制其像素的组件提供了一定程度的透明度。
保证总是完全绘制内容的子类应该覆盖此方法并返回true。
- 重写:
-
isOpaque
在Component
- 结果
- 如果此组件完全不透明,则为true
- 另请参见:
-
setOpaque(boolean)
-
setOpaque
@BeanProperty(expert=true, description="The component\'s opacity") public void setOpaque(boolean isOpaque)
如果为真,组件将绘制其边界内的每个像素。 否则,组件可能不会绘制其部分或全部像素,从而允许底层像素显示。JComponent
的此属性的默认值为false。 但是,大多数标准JComponent
子类(如JButton
和JTree
)的此属性的默认值依赖于外观。- 参数
-
isOpaque
- 如果此组件应该是不透明的,isOpaque
true - 另请参见:
-
isOpaque()
-
computeVisibleRect
public void computeVisibleRect(Rectangle visibleRect)
返回Component
的“可见矩形矩形” - 该组件的可见矩形与其所有祖先的交集。 返回值存储在visibleRect
。- 参数
-
visibleRect
- 一个Rectangle
计算为该组件的所有可见矩形及其所有祖先的交集 - 这是此方法的返回值 - 另请参见:
-
getVisibleRect()
-
getVisibleRect
@BeanProperty(bound=false) public Rectangle getVisibleRect()
返回Component
的“可见矩形” - 该组件的可见矩形new Rectangle(0, 0, getWidth(), getHeight())
与其所有祖先的可见矩形的交集。- 结果
- 可见的矩形
-
firePropertyChange
public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue)
支持报告布尔属性的绑定属性更改。 当绑定属性已更改时,可以调用此方法,并且将向适当的PropertyChangeEvent发送适当的PropertyChangeEvent。- 重写:
-
firePropertyChange
在Component
- 参数
-
propertyName
- 其值已更改的属性 -
oldValue
- 该物业的以前的价值 -
newValue
- 物业的新价值
-
firePropertyChange
public void firePropertyChange(String propertyName, int oldValue, int newValue)
支持报告整数属性的绑定属性更改。 当绑定属性已更改时,可以调用此方法,并且将向适当的PropertyChangeEvent发送适当的PropertyChangeEvent。- 重写:
-
firePropertyChange
在Component
- 参数
-
propertyName
- 其值已更改的属性 -
oldValue
- 该物业的以前的价值 -
newValue
- 该物业的新价值
-
firePropertyChange
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)
-
fireVetoableChange
protected void fireVetoableChange(String propertyName, Object oldValue, Object newValue) throws PropertyVetoException
支持报告受限的属性更改。 当受限属性已更改时,可以调用此方法,并将适当的PropertyChangeEvent
发送到任何已注册的VetoableChangeListeners
。- 参数
-
propertyName
- 收听的财产的名称 -
oldValue
- 该物业的旧值 -
newValue
- 该属性的新值 - 异常
-
PropertyVetoException
- 尝试设置属性被组件否决时
-
addVetoableChangeListener
public void addVetoableChangeListener(VetoableChangeListener listener)
添加VetoableChangeListener
到侦听器列表。 所有属性都注册了监听器。- 参数
-
listener
- 要添加的VetoableChangeListener
-
removeVetoableChangeListener
public void removeVetoableChangeListener(VetoableChangeListener listener)
从侦听器列表中删除VetoableChangeListener
。 这将删除所有属性注册的VetoableChangeListener
。- 参数
-
listener
- 要删除的VetoableChangeListener
-
getVetoableChangeListeners
@BeanProperty(bound=false) public VetoableChangeListener[] getVetoableChangeListeners()
返回在此组件上注册的所有可变更改监听器的数组。- 结果
-
所有组件的
VetoableChangeListener
s或一个空数组,如果当前没有否决变更监听器 - 从以下版本开始:
- 1.4
- 另请参见:
-
addVetoableChangeListener(java.beans.VetoableChangeListener)
,removeVetoableChangeListener(java.beans.VetoableChangeListener)
-
getTopLevelAncestor
@BeanProperty(bound=false) public Container getTopLevelAncestor()
返回此组件的顶级祖先(包含Window
或Applet
),如果此组件尚未添加到任何容器,则null
。- 结果
-
该组件的顶级
Container
,或null
如果不在任何容器
-
addAncestorListener
public void addAncestorListener(AncestorListener listener)
注册listener
以便当它或其任何祖先移动或使其可见或不可见时,它将接收AncestorEvents
。 当组件或其祖先从包含层次结构中添加或删除时,也会发送事件。- 参数
-
listener
- 要注册的AncestorListener
- 另请参见:
-
AncestorEvent
-
removeAncestorListener
public void removeAncestorListener(AncestorListener listener)
取消注册listener
,使其不再接收AncestorEvents
。- 参数
-
listener
- 要删除的AncestorListener
- 另请参见:
-
addAncestorListener(javax.swing.event.AncestorListener)
-
getAncestorListeners
@BeanProperty(bound=false) public AncestorListener[] getAncestorListeners()
返回在此组件上注册的所有祖先监听器的数组。- 结果
-
所有组件的
AncestorListener
s或一个空数组,如果没有祖先监听器当前注册 - 从以下版本开始:
- 1.4
- 另请参见:
-
addAncestorListener(javax.swing.event.AncestorListener)
,removeAncestorListener(javax.swing.event.AncestorListener)
-
getListeners
public <T extends EventListener> T[] getListeners(Class<T> listenerType)
返回此JComponent
当前注册为FooListener
的所有对象的数组。FooListener
使用addFooListener
注册。您可以使用类文字指定
listenerType
参数,如FooListener.class
。 例如,您可以使用以下代码查询JComponent
c
其鼠标监听器:MouseListener[] mls = (MouseListener[])(c.getListeners(MouseListener.class));
如果没有这样的侦听器存在,这个方法返回一个空数组。- 重写:
-
getListeners
在Container
- 参数类型
-
T
- 侦听器的类型 - 参数
-
listenerType
- 所请求的听众的类型; 此参数应指定从java.util.EventListener
下降的接口 - 结果
-
在此组件上注册为
FooListener
的所有对象的数组,如果没有添加此类侦听器,则为空数组 - 异常
-
ClassCastException
- 如果listenerType
未指定实现java.util.EventListener
的类或接口 - 从以下版本开始:
- 1.3
- 另请参见:
-
getVetoableChangeListeners()
,getAncestorListeners()
-
addNotify
public void addNotify()
通知此组件它现在有一个父组件。 调用此方法时,父组件链将使用KeyboardAction
事件侦听器进行设置。 该方法在内部被工具包调用,不应该被程序直接调用。
-
removeNotify
public void removeNotify()
通知此组件它不再具有父组件。 当调用此方法时,将删除在父组件链中设置的任何KeyboardAction
。 该方法在内部被工具包调用,不应该被程序直接调用。
-
repaint
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)
-
repaint
public void repaint(Rectangle r)
如果组件显示,则将指定的区域添加到脏区列表。 在所有当前待处理的事件已被分派之后,组件将被重新绘制。- 参数
-
r
- 一个包含脏区域的Rectangle
- 另请参见:
-
isPaintingOrigin()
,Component.isShowing()
,RepaintManager.addDirtyRegion(javax.swing.JComponent, int, int, int, int)
-
revalidate
public void revalidate()
支持延迟自动布局。调用
invalidate
,然后将该组件的validateRoot
添加到需要验证的组件列表中。 所有当前待处理的事件都将被分派之后,将进行验证。 换句话说,在调用此方法之后,将验证在步入该组件的包含层次结构时找到的第一个validateRoot(如果有)。 默认情况下,JRootPane
,JScrollPane
,并JTextField
回真正从isValidateRoot
。当属性值更改时,此组件将自动调用此方法,以使该组件的大小,位置或内部布局受到影响。 这种自动更新与AWT不同,因为程序通常不再需要调用
validate
来获取GUI的内容来更新。
-
isValidateRoot
public boolean isValidateRoot()
如果此方法返回true,revalidate
此组件的后代的调用将导致从该根开始的整个树被验证。 默认情况下返回false。JScrollPane
覆盖此方法并返回true。- 重写:
-
isValidateRoot
在Container
- 结果
- 总是返回false
- 另请参见:
-
revalidate()
,Component.invalidate()
,Container.validate()
,Container.isValidateRoot()
-
isOptimizedDrawingEnabled
@BeanProperty(bound=false) public boolean isOptimizedDrawingEnabled()
如果此组件贴图其子项,则返回true - 即,如果可以保证子项不会重叠。 在这种常见情况下,重新涂布系统显着更有效率。JComponent
不能保证的子类,如JLayeredPane
,应该覆盖此方法返回false。- 结果
- 总是返回true
-
isPaintingOrigin
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)
-
paintImmediately
public void paintImmediately(int x, int y, int w, int h)
立即绘制该组件及其与该区域重叠的所有后代的指定区域。很少需要调用这个方法。 在大多数情况下,调用重绘更为有效,这会拖延实际绘画,并可将多余的请求压缩成单个绘图调用。 如果在调度当前事件时需要更新显示,此方法很有用。
当为绘制起点的组件需要更改脏区域时,该方法将被覆盖。
- 参数
-
x
- 要绘制的区域的x值 -
y
- 要绘制的区域的y值 -
w
- 要涂漆的区域的宽度 -
h
- 要涂漆的区域的高度 - 另请参见:
-
repaint(long, int, int, int, int)
,isPaintingOrigin()
-
paintImmediately
public void paintImmediately(Rectangle r)
现在涂漆指定区域。- 参数
-
r
- aRectangle
包含要涂漆的区域
-
setDoubleBuffered
public void setDoubleBuffered(boolean aFlag)
设置此组件是否应该使用缓冲区来绘制。 如果设置为true,则此组件的所有绘图将在屏幕外绘图缓冲区中完成。 屏幕上的绘画缓冲区将被复制到屏幕上。 如果Component
被缓冲,并且其祖先之一也被缓冲,那么将使用祖先缓冲区。- 参数
-
aFlag
- 如果为true,请将此组件设置为双缓冲
-
isDoubleBuffered
public boolean isDoubleBuffered()
返回此组件是否应该使用缓冲区来绘制。- 重写:
-
isDoubleBuffered
在Component
- 结果
- 如果此组件是双缓冲的,则为true,否则为false
-
getRootPane
@BeanProperty(bound=false) public JRootPane getRootPane()
返回此组件的JRootPane
祖先。- 结果
-
包含此组件的
JRootPane
,或者如果没有找到null
则为JRootPane
-
paramString
protected String paramString()
返回此JComponent
的字符串表示JComponent
。 该方法仅用于调试目的,并且返回的字符串的内容和格式可能因实现而异。 返回的字符串可能为空,但可能不是null
。- 重写:
-
paramString
在Container
- 结果
-
这个
JComponent
的字符串表示
-
hide
@Deprecated public void hide()
已过时。
-
-