- java.lang.Object
-
- javax.swing.SwingUtilities
-
- All Implemented Interfaces:
-
SwingConstants
public class SwingUtilities extends Object implements SwingConstants
Swing的一个实用方法的集合。- 从以下版本开始:
- 1.2
-
-
Field Summary
-
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
-
-
方法摘要
所有方法 静态方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 static Rectangle
calculateInnerArea(JComponent c, Rectangle r)
存储r
指定组件的r
区域的位置和大小,并返回r
。static Rectangle[]
computeDifference(Rectangle rectA, Rectangle rectB)
方便返回表示rectA
中与rectB
不重叠的区域的rect数组。static Rectangle
computeIntersection(int x, int y, int width, int height, Rectangle dest)
方便计算两个矩形的交点,而不分配一个新的矩形。static int
computeStringWidth(FontMetrics fm, String str)
使用指定的“metrics”(大小)的字体计算字符串的宽度。static Rectangle
computeUnion(int x, int y, int width, int height, Rectangle dest)
计算两个矩形的并集而不分配新矩形的便捷方法。static MouseEvent
convertMouseEvent(Component source, MouseEvent sourceEvent, Component destination)
返回类似于sourceEvent
的MouseEvent,但其x和y成员已转换为destination
的坐标系。static Point
convertPoint(Component source, int x, int y, Component destination)
将source
坐标系中的点(x,y)
转换为destination
坐标系。static Point
convertPoint(Component source, Point aPoint, Component destination)
转换为aPoint
在source
坐标系destination
坐标系。static void
convertPointFromScreen(Point p, Component c)
将一个点从屏幕坐标转换为组件的坐标系static void
convertPointToScreen(Point p, Component c)
将点从组件的坐标系转换为屏幕坐标。static Rectangle
convertRectangle(Component source, Rectangle aRectangle, Component destination)
将source
坐标系中的矩形aRectangle
转换为destination
坐标系。static Component
findFocusOwner(Component c)
已过时。截至1.4,由KeyboardFocusManager.getFocusOwner()
替代。static Accessible
getAccessibleAt(Component c, Point p)
返回包含在本地坐标Point
中的Accessible
子Point
(如果存在)。static Accessible
getAccessibleChild(Component c, int i)
返回对象的第n个可访问子对象。static int
getAccessibleChildrenCount(Component c)
返回对象中可访问的子项数。static int
getAccessibleIndexInParent(Component c)
在其可访问的父项中获取此对象的索引。static AccessibleStateSet
getAccessibleStateSet(Component c)
获取此对象的状态。static Container
getAncestorNamed(String name, Component comp)
在组件层次结构中搜索comp
以上的方便方法,并返回其找到的第一个对象name
。static Container
getAncestorOfClass(Class<?> c, Component comp)
在组件层次结构中搜索comp
之上的方便方法,并返回它找到的第c
类的第一个对象。static Component
getDeepestComponentAt(Component parent, int x, int y)
返回的最深可见后代组件parent
包含位置x
,y
。static Rectangle
getLocalBounds(Component aComponent)
返回组件aComponent
的矩形(0,0,bounds.width,bounds.height)static Component
getRoot(Component c)
返回当前组件树的根组件。static JRootPane
getRootPane(Component c)
如果c是JRootPane后代,则返回其JRootPane祖先。static ActionMap
getUIActionMap(JComponent component)
返回组件component
由UI提供的ActionMap。static InputMap
getUIInputMap(JComponent component, int condition)
返回由组件component
条件condition
的UI提供的InputMap。static Container
getUnwrappedParent(Component component)
返回component
的第一个祖先,而不是JLayer
的一个实例。static Component
getUnwrappedView(JViewport viewport)
返回第JViewport
的后代,不是JLayer
一个实例。static Window
getWindowAncestor(Component c)
返回第Window
祖先c
,或null
如果c
未包含在里面Window
。static void
invokeAndWait(Runnable doRun)
导致在AWT事件调度线程上同步执行doRun.run()
。static void
invokeLater(Runnable doRun)
导致 doRun.run()在AWT事件分派线程上异步执行。static boolean
isDescendingFrom(Component a, Component b)
如果组件a
从组件b
true
则返回b
static boolean
isEventDispatchThread()
如果当前线程是AWT事件调度线程,则返回true。static boolean
isLeftMouseButton(MouseEvent anEvent)
如果鼠标事件指定鼠标左键,则返回true。static boolean
isMiddleMouseButton(MouseEvent anEvent)
如果鼠标事件指定鼠标中键,则返回true。static boolean
isRectangleContainingRectangle(Rectangle a, Rectangle b)
返回true
如果@ {代码}包含b
static boolean
isRightMouseButton(MouseEvent anEvent)
如果鼠标事件指定了鼠标右键,则返回true。static String
layoutCompoundLabel(FontMetrics fm, String text, Icon icon, int verticalAlignment, int horizontalAlignment, int verticalTextPosition, int horizontalTextPosition, Rectangle viewR, Rectangle iconR, Rectangle textR, int textIconGap)
计算并返回图标原点的位置,文本基线的原点位置以及复合标签字符串的可能剪切版本。static String
layoutCompoundLabel(JComponent c, FontMetrics fm, String text, Icon icon, int verticalAlignment, int horizontalAlignment, int verticalTextPosition, int horizontalTextPosition, Rectangle viewR, Rectangle iconR, Rectangle textR, int textIconGap)
计算并返回图标原点的位置,文本基线的原点位置以及复合标签字符串的可能剪切版本。static boolean
notifyAction(Action action, KeyStroke ks, KeyEvent event, Object sender, int modifiers)
调用actionPerformed
上action
如果action
是非null
并接受发送对象。static void
paintComponent(Graphics g, Component c, Container p, int x, int y, int w, int h)
绘制一个组件到指定的Graphics
。static void
paintComponent(Graphics g, Component c, Container p, Rectangle r)
绘制一个组件到指定的Graphics
。static boolean
processKeyBindings(KeyEvent event)
处理用于在所述键绑定Component
关联event
。static void
replaceUIActionMap(JComponent component, ActionMap uiActionMap)
方便方法将UI ActionMap更改为component
至uiActionMap
。static void
replaceUIInputMap(JComponent component, int type, InputMap uiInputMap)
方便的方法将UI InputMap为component
为uiInputMap
。static void
updateComponentTreeUI(Component c)
一个简单的头脑的感觉变化:请求树中的每个节点为updateUI()
- 即,使用当前的外观来初始化其UI属性。static Window
windowForComponent(Component c)
返回第Window
祖先c
,或null
如果c
未包含在里面Window
。
-
-
-
方法详细信息
-
isRectangleContainingRectangle
public static final boolean isRectangleContainingRectangle(Rectangle a, Rectangle b)
返回true
如果@ {代码}包含b
- 参数
-
a
- 第一个矩形 -
b
- 第二个矩形 - 结果
-
true
如果@ {代码}包含b
-
getLocalBounds
public static Rectangle getLocalBounds(Component aComponent)
返回组件aComponent
的矩形(0,0,bounds.width,bounds.height)- 参数
-
aComponent
- 一个组件 - 结果
-
组件
aComponent
的局部边界
-
getWindowAncestor
public static Window getWindowAncestor(Component c)
返回第Window
祖先c
,或null
如果c
未包含在里面Window
。- 参数
-
c
-Component
获取Window
祖先。 - 结果
-
第一
Window
祖先c
,或null
如果c
未包含在内部Window
。 - 从以下版本开始:
- 1.3
-
convertPoint
public static Point convertPoint(Component source, Point aPoint, Component destination)
转换为aPoint
在source
坐标系destination
坐标系。 如果source
为null
,则aPoint
假设为destination
的根组件坐标系。 如果destination
为null
,则aPoint
将转换为source
的根组件坐标系。 如果source
和destination
都是null
,返回aPoint
没有任何转换。- 参数
-
source
- 源组件 -
aPoint
- 关键 -
destination
- 目标组件 - 结果
- 转换的坐标
-
convertPoint
public static Point convertPoint(Component source, int x, int y, Component destination)
将source
坐标系中的点(x,y)
转换为坐标系destination
。 如果source
为null
,则(x,y)
假定为destination
的根组件坐标系。 如果destination
为null
,则(x,y)
将转换为source
的根组件坐标系。 如果source
和destination
均为null
,(x,y)
无需任何转换即可返回(x,y)
。- 参数
-
source
- 源组件 -
x
- 点的x坐标 -
y
- 点的y坐标 -
destination
- 目标组件 - 结果
- 转换的坐标
-
convertRectangle
public static Rectangle convertRectangle(Component source, Rectangle aRectangle, Component destination)
将source
坐标系中的矩形aRectangle
转换为destination
坐标系。 如果source
是null
,aRectangle
被假定为在destination
的根组件坐标系统。 如果destination
为null
,则aRectangle
将转换为source
的根组件坐标系。 如果source
和destination
均为null
,aRectangle
无需任何转换即可返回aRectangle
。- 参数
-
source
- 源组件 -
aRectangle
- 一个矩形 -
destination
- 目标组件 - 结果
- 转换矩形
-
getAncestorOfClass
public static Container getAncestorOfClass(Class<?> c, Component comp)
在组件层次结构中搜索comp
以上的方便方法,并返回它找到的第c
类的第一个对象。 可以返回null
,如果一个类c
无法找到。- 参数
-
c
- 组件的类 -
comp
- 组件 - 结果
-
comp
的祖先,或null
如果不能找到c
。
-
getAncestorNamed
public static Container getAncestorNamed(String name, Component comp)
以上搜索的便捷方法comp
组件层次结构中,并返回的第一对象name
它找到。 可以返回null
,如果name
。- 参数
-
name
- 组件的名称 -
comp
- 组件 - 结果
-
comp
的祖先,或null
如果不能找到name
。
-
getDeepestComponentAt
public static Component getDeepestComponentAt(Component parent, int x, int y)
返回的最深可见后代组件parent
包含位置x
,y
。 如果parent
不包含指定的位置,则返回null
。 如果parent
不是容器,或者parent
的可见后代中没有包含指定的位置,则返回parent
。- 参数
-
parent
- 开始搜索的根组件 -
x
- x目标位置 -
y
- y目标位置 - 结果
- 最深的组成部分
-
convertMouseEvent
public static MouseEvent convertMouseEvent(Component source, MouseEvent sourceEvent, Component destination)
返回类似于sourceEvent
的MouseEvent,但其x和y成员已转换为destination
的坐标系。 如果source
是null
,sourceEvent
x和y的成员被认为是成destination
的根组件坐标系统。 如果destination
为null
,则返回的MouseEvent将位于source
的坐标系中。sourceEvent
不会更改。 返回一个新的事件。 如果目的地为非null
,则返回事件的source
字段将设置为destination
,使用translateMouseEvent()方法将鼠标事件从一个组件转换到另一个组件而不更改源。- 参数
-
source
- 源组件 -
sourceEvent
- 源鼠标事件 -
destination
- 目标组件 - 结果
- 新的鼠标事件
-
convertPointToScreen
public static void convertPointToScreen(Point p, Component c)
将点从组件的坐标系转换为屏幕坐标。- 参数
-
p
- 点对象(转换为新坐标系) -
c
- 一个Component对象
-
convertPointFromScreen
public static void convertPointFromScreen(Point p, Component c)
将一个点从屏幕坐标转换为组件的坐标系- 参数
-
p
- 点对象(转换为新坐标系) -
c
- 组件对象
-
windowForComponent
public static Window windowForComponent(Component c)
返回第Window
祖先c
,或null
如果c
未包含在里面Window
。注意:此方法提供与
getWindowAncestor
相同的功能。- 参数
-
c
-Component
获得Window
祖先。 - 结果
-
第一
Window
祖先c
,或null
如果c
未包含在内部Window
。
-
isDescendingFrom
public static boolean isDescendingFrom(Component a, Component b)
如果组件a
从组件b
true
则返回b
- 参数
-
a
- 第一个组件 -
b
- 第二个组件 - 结果
-
true
如果组件a
从组件下降b
-
computeIntersection
public static Rectangle computeIntersection(int x, int y, int width, int height, Rectangle dest)
方便计算两个矩形的交点,而不分配一个新的矩形。 如果两个矩形不相交,则返回的矩形从(0,0)开始,宽度和高度都为零。- 参数
-
x
- 第一个矩形x
的X坐标 -
y
- 第一个矩形y
的Y坐标 -
width
- 第一个矩形的宽度 -
height
- 第一个矩形的高度 -
dest
- 第二个矩形 - 结果
-
dest
,修改为指定交集
-
computeUnion
public static Rectangle computeUnion(int x, int y, int width, int height, Rectangle dest)
计算两个矩形的并集而不分配新矩形的便捷方法。- 参数
-
x
- 第一个矩形的x坐标 -
y
- 第一个矩形的y坐标 -
width
- 第一个矩形的宽度 -
height
- 第一个矩形的高度 -
dest
- 第二个矩形的坐标; 在这个矩形中返回两个矩形的并集 - 结果
-
dest
Rectangle
-
computeDifference
public static Rectangle[] computeDifference(Rectangle rectA, Rectangle rectB)
方便返回一组rectA
,表示rectA
内与rectB
不重叠的rectB
。 如果两个Rect不重叠,返回一个空数组- 参数
-
rectA
- 第一个矩形 -
rectB
- 第二个矩形 - 结果
-
表示
rectA
中与rectB
不重叠的区域的矩形数组。
-
isLeftMouseButton
public static boolean isLeftMouseButton(MouseEvent anEvent)
如果鼠标事件指定鼠标左键,则返回true。- 参数
-
anEvent
- 一个MouseEvent对象 - 结果
- 如果鼠标左键处于活动状态,则为true
-
isMiddleMouseButton
public static boolean isMiddleMouseButton(MouseEvent anEvent)
如果鼠标事件指定鼠标中键,则返回true。- 参数
-
anEvent
- 一个MouseEvent对象 - 结果
- 如果鼠标中键处于活动状态,则为true
-
isRightMouseButton
public static boolean isRightMouseButton(MouseEvent anEvent)
如果鼠标事件指定了鼠标右键,则返回true。- 参数
-
anEvent
- 一个MouseEvent对象 - 结果
- 如果鼠标右键处于活动状态,则为true
-
computeStringWidth
public static int computeStringWidth(FontMetrics fm, String str)
使用指定的“metrics”(大小)的字体计算字符串的宽度。- 参数
-
fm
- 要计算的FontMetrics对象 -
str
- 要计算的字符串 - 结果
- 一个包含字符串宽度的int
-
layoutCompoundLabel
public static String layoutCompoundLabel(JComponent c, FontMetrics fm, String text, Icon icon, int verticalAlignment, int horizontalAlignment, int verticalTextPosition, int horizontalTextPosition, Rectangle viewR, Rectangle iconR, Rectangle textR, int textIconGap)
计算并返回图标原点的位置,文本基线的原点位置以及复合标签字符串的可能剪切版本。 相对于viewR矩形计算位置。 JComponent方向(LEADING / TRAILING)也将被考虑并相应地转换为LEFT / RIGHT值。- 参数
-
c
- 组件 -
fm
-实例FontMetrics
-
text
- 文字 -
icon
- 图标 -
verticalAlignment
- 垂直对齐 -
horizontalAlignment
- 水平对齐 -
verticalTextPosition
- 垂直文本位置 -
horizontalTextPosition
- 水平文本位置 -
viewR
- 可用的矩形 -
iconR
- 图标的矩形 -
textR
- 文本的矩形 -
textIconGap
- 文本和图标之间的差距 - 结果
- 复合标签字符串的可能剪辑版本
-
layoutCompoundLabel
public static String layoutCompoundLabel(FontMetrics fm, String text, Icon icon, int verticalAlignment, int horizontalAlignment, int verticalTextPosition, int horizontalTextPosition, Rectangle viewR, Rectangle iconR, Rectangle textR, int textIconGap)
计算并返回图标原点的位置,文本基线的原点位置以及复合标签字符串的可能剪切版本。 相对于viewR矩形计算位置。 这个layoutCompoundLabel()不知道如何处理horizontalTextPosition中的LEADING / TRAILING值(它们将默认为RIGHT)和horizontalAlignment(它们将默认为CENTER)。 改用layoutCompoundLabel()的其他版本。- 参数
-
fm
-实例FontMetrics
-
text
- 文字 -
icon
- 图标 -
verticalAlignment
- 垂直对齐 -
horizontalAlignment
- 水平对齐 -
verticalTextPosition
- 垂直文本位置 -
horizontalTextPosition
- 水平文本位置 -
viewR
- 可用的矩形 -
iconR
- 图标的矩形 -
textR
- 文本的矩形 -
textIconGap
- 文字与图示之间的差距 - 结果
- 复合标签字符串的可能剪辑版本
-
paintComponent
public static void paintComponent(Graphics g, Component c, Container p, int x, int y, int w, int h)
绘制一个组件到指定的Graphics
。 此方法主要用于渲染不可见的Component
s,作为可见包含层次结构的一部分,但用于呈现。 例如,如果您正在进行自己的渲染,并且想要渲染一些文本(甚至HTML),则可以使用JLabel
的文本呈现支持,并通过此方法直接绘制,JLabel
标签添加到可见的遏制层次。该方法利用
CellRendererPane
处理实际绘画,只有在使用一个组件进行渲染时才建议使用。 如果您使用多个组件来处理渲染,如JTable
,直接使用CellRendererPane
。 否则,如下所述,您可能会得到一个CellRendererPane
每Component
。如果
c
的父母是不是CellRendererPane
,新CellRendererPane
创建,c
被添加到它,并且CellRendererPane
添加到p
。 如果c
的母亲是CellRendererPane
,而CellRendererPane
的父母不是p
,则被添加到p
。组件应该从
JComponent
或者是另一种轻量级组件。 轻量级组件是“轻量级”属性(由Component
isLightweight
方法返回)为真。 如果组件不轻便,则会发生错误的地图:崩溃,异常,绘画问题...- 参数
-
g
- 要绘制的Graphics
对象 -
c
-Component
画 -
p
- 中间件Container
-
x
- 一个int指定从图形上下文的左边缘测量的区域的左侧,以像素为单位 -
y
- 一个int指定要绘制的区域的顶部,以从图形上下文的顶部边缘向下测量的像素 -
w
- 一个int指定绘制的区域的宽度,以像素为单位 -
h
- 一个int指定绘制的区域的高度,以像素为单位 - 另请参见:
-
CellRendererPane
,Component.isLightweight()
-
paintComponent
public static void paintComponent(Graphics g, Component c, Container p, Rectangle r)
绘制一个组件到指定的Graphics
。 这是paintComponent(Graphics,Component,Container,int,int,int,int)
的封面方法。 请参考它了解更多信息。- 参数
-
g
- 要绘制的Graphics
对象 -
c
-Component
画 -
p
- 中间人Container
-
r
-Rectangle
画 - 另请参见:
-
paintComponent(Graphics,Component,Container,int,int,int,int)
,CellRendererPane
-
updateComponentTreeUI
public static void updateComponentTreeUI(Component c)
一个简单的头脑的感觉变化:请求树中的每个节点为updateUI()
- 即使用当前的外观来初始化其UI属性。- 参数
-
c
- 组件
-
invokeLater
public static void invokeLater(Runnable doRun)
导致doRun.run()在AWT事件分派线程上异步执行。 这将在所有待处理的AWT事件处理完毕之后发生。 当应用程序线程需要更新GUI时,应使用此方法。 在以下示例中,invokeLater
调用队列Runnable
对象doHelloWorld
对事件分派线程,然后打印一条消息。Runnable doHelloWorld = new Runnable() { public void run() { System.out.println("Hello World on " + Thread.currentThread()); } }; SwingUtilities.invokeLater(doHelloWorld); System.out.println("This might well be displayed before the other message.");
如果从事件调度线程调用invokeLater - 例如,从JButton的ActionListener中, doRun.run()仍将被延迟,直到所有待处理的事件都被处理为止。 请注意,如果doRun.run()抛出一个未捕获的异常事件调度线程将展开(而不是当前线程)。有关此方法的其他文档和示例,请参见Concurrency in Swing 。
截至1.3这个方法只是一个封面,为
java.awt.EventQueue.invokeLater()
。与其他Swing不同,该方法可以从任何线程调用。
- 参数
-
doRun
-实例Runnable
- 另请参见:
-
invokeAndWait(java.lang.Runnable)
-
invokeAndWait
public static void invokeAndWait(Runnable doRun) throws InterruptedException, InvocationTargetException
导致在AWT事件调度线程上同步执行doRun.run()
。 此调用将阻塞,直到所有待处理的AWT事件都处理doRun.run()
(然后)返回doRun.run()
。 当应用程序线程需要更新GUI时,应使用此方法。 不应该从事件调度线程调用。 以下是一个示例,它创建一个新的应用程序线程,使用invokeAndWait
从事件分派线程打印一个字符串,然后在完成后,从应用程序线程中打印一个字符串。final Runnable doHelloWorld = new Runnable() { public void run() { System.out.println("Hello World on " + Thread.currentThread()); } }; Thread appThread = new Thread() { public void run() { try { SwingUtilities.invokeAndWait(doHelloWorld); } catch (Exception e) { e.printStackTrace(); } System.out.println("Finished on " + Thread.currentThread()); } }; appThread.start();
请注意,如果Runnable.run
方法抛出一个未捕获的异常(在事件分派线程上),它将被捕获并InvocationTargetException
,作为一个InvocationTargetException
,在调用者的线程上。有关此方法的其他文档和示例,请参见Concurrency in Swing 。
从1.3开始,这个方法只是一个
java.awt.EventQueue.invokeAndWait()
的封面。- 参数
-
doRun
-实例Runnable
- 异常
-
InterruptedException
- 如果我们在等待事件调度线程完成执行时doRun.run()
-
InvocationTargetException
- 如果在运行时抛出异常doRun
- 另请参见:
-
invokeLater(java.lang.Runnable)
-
isEventDispatchThread
public static boolean isEventDispatchThread()
如果当前线程是AWT事件调度线程,则返回true。截至1.3这个方法只是一个封面,为
java.awt.EventQueue.isDispatchThread()
。- 结果
- 如果当前线程是AWT事件调度线程,则为true
-
getAccessibleIndexInParent
public static int getAccessibleIndexInParent(Component c)
在其可访问的父项中获取此对象的索引。注意:从Java 2平台v1.3开始,建议开发人员调用Component.AccessibleAWTComponent.getAccessibleIndexInParent()而不是使用此方法。
- 参数
-
c
- 组件 - 结果
- -1对象没有可访问的父对象。 否则,其可访问父级中的子级索引。
-
getAccessibleAt
public static Accessible getAccessibleAt(Component c, Point p)
返回Accessible
包含在本地坐标孩子Point
(如果存在)。 否则返回null
。- 参数
-
c
- 组件 -
p
- 局部坐标 - 结果
-
在指定位置的
Accessible
,如果存在; 否则null
-
getAccessibleStateSet
public static AccessibleStateSet getAccessibleStateSet(Component c)
获取此对象的状态。注意:从Java 2平台v1.3开始,建议开发人员调用Component.AccessibleAWTComponent.getAccessibleIndexInParent()而不是使用此方法。
- 参数
-
c
- 组件 - 结果
- 包含对象的当前状态集的AccessibleStateSet实例
- 另请参见:
-
AccessibleState
-
getAccessibleChildrenCount
public static int getAccessibleChildrenCount(Component c)
返回对象中可访问的子项数。 如果这个对象的所有子项都实现了Accessible,那么这个方法应该返回这个对象的子代数。注意:从Java 2平台v1.3开始,建议开发人员调用Component.AccessibleAWTComponent.getAccessibleIndexInParent()而不是使用此方法。
- 参数
-
c
- 组件 - 结果
- 对象中可访问的孩子的数量。
-
getAccessibleChild
public static Accessible getAccessibleChild(Component c, int i)
返回对象的第n个可访问子对象。注意:从Java 2平台v1.3开始,建议开发人员调用Component.AccessibleAWTComponent.getAccessibleIndexInParent()而不是使用此方法。
- 参数
-
c
- 组件 -
i
- 基于零的儿童索引 - 结果
- 对象的第n个可访问子对象
-
findFocusOwner
@Deprecated public static Component findFocusOwner(Component c)
已过时。 截至1.4,由KeyboardFocusManager.getFocusOwner()
取代。返回作为焦点所有者的指定的Component
的小孩Component
(如果有的话)。- 参数
-
c
- 搜索焦点所有者的Component
层次结构的根 - 结果
-
焦点所有者,或
null
如果没有焦点所有者,或者如果焦点所有者不是comp
,或后代comp
- 另请参见:
-
KeyboardFocusManager.getFocusOwner()
-
getRootPane
public static JRootPane getRootPane(Component c)
如果c是JRootPane后代,则返回其JRootPane祖先。 如果c是RootPaneContainer,则返回其JRootPane。- 参数
-
c
- 组件 - 结果
-
JRootPane for Component c或
null
。
-
getRoot
public static Component getRoot(Component c)
返回当前组件树的根组件。- 参数
-
c
- 组件 - 结果
- c的第一个祖先是一个窗口或最后一个Applet祖先
-
processKeyBindings
public static boolean processKeyBindings(KeyEvent event)
处理用于在所述键绑定Component
关联event
。 此方法仅在event.getComponent()
不从JComponent
或您的JComponent
子类中未调用super.processKeyEvent
JComponent
。JComponent
自动处理来自其内部的processKeyEvent
方法的绑定,因此您很少需要直接调用此方法。- 参数
-
event
- 用于标识要处理的绑定的KeyEvent以及哪个组件具有焦点。 - 结果
- 如果已找到并处理绑定,则为true
- 从以下版本开始:
- 1.4
-
notifyAction
public static boolean notifyAction(Action action, KeyStroke ks, KeyEvent event, Object sender, int modifiers)
调用actionPerformed
上action
如果action
是非null
并接受发送对象。 ActionEvent的命令由以下确定:- 如果通过
registerKeyboardAction
注册了该操作,则传入的命令字符串(null
将被使用,如果null
)。 - 动作值为Action.ACTION_COMMAND_KEY,除非是
null
。 - KeyEvent的字符串值,除非
getKeyChar
返回KeyEvent.CHAR_UNDEFINED ..
action
不是null
并且对其执行actionPerformed,则返回true。- 参数
-
action
- 一个动作 -
ks
- 关键笔画 -
event
- 一个关键事件 -
sender
- 发件人 -
modifiers
- 动作修饰符 - 结果
-
true
如果action
是非null
并且actionPerformed被调用就可以了。 - 从以下版本开始:
- 1.3
- 另请参见:
-
Action.accept(java.lang.Object)
- 如果通过
-
replaceUIInputMap
public static void replaceUIInputMap(JComponent component, int type, InputMap uiInputMap)
方便的方法将UI InputMap为component
为uiInputMap
。 如果uiInputMap
为null
,则会删除以前安装的UI InputMap。- 参数
-
component
- 一个组件 -
type
- 一种类型 -
uiInputMap
- 一个InputMap
- 从以下版本开始:
- 1.3
-
replaceUIActionMap
public static void replaceUIActionMap(JComponent component, ActionMap uiActionMap)
方便方法将UI ActionMap更改为component
至uiActionMap
。 如果uiActionMap
为null
,则会删除以前安装的UI ActionMap。- 参数
-
component
- 一个组件 -
uiActionMap
- aActionMap
- 从以下版本开始:
- 1.3
-
getUIInputMap
public static InputMap getUIInputMap(JComponent component, int condition)
返回由组件component
条件condition
的UI提供的InputMap。如果UI没有安装指定类型的InputMap,则返回
null
。- 参数
-
component
- 一个组件 -
condition
- 一个条件 - 结果
-
由组件中的
ActionMap
的UI提供的condition
,或者如果UI尚未安装指定类型的InputMap,null
。 - 从以下版本开始:
- 1.3
-
getUIActionMap
public static ActionMap getUIActionMap(JComponent component)
返回组件component
由UI提供的ActionMap。如果UI还没有安装ActionMap,这将返回
null
。- 参数
-
component
- 一个组件 - 结果
-
该
ActionMap
由UI组件中提供,或者null
如果该UI未安装的ActionMap。 - 从以下版本开始:
- 1.3
-
calculateInnerArea
public static Rectangle calculateInnerArea(JComponent c, Rectangle r)
存储r
指定组件的r
区域的位置和大小,并返回r
。 位置和大小指定组件的边界,调整为不包括边框区域(插图)。 此方法对于实现绘画代码的类很有用。- 参数
-
c
- 有关JComponent的问题; 如果是null
,此方法返回null
-
r
- 要修改的Rectangle实例; 可能是null
- 结果
-
null
如果组件是null
; 否则返回传入的矩形(如果null
)或指定位置和大小信息的新矩形 - 从以下版本开始:
- 1.4
-
getUnwrappedParent
public static Container getUnwrappedParent(Component component)
返回component
的第一个祖先,而不是JLayer
的一个实例。- 参数
-
component
-Component
获得第一个祖先,这不是一个JLayer
实例。 - 结果
-
component
的第一个祖先不是JLayer
的一个例子。 如果找不到这样的祖先,则返回null
。 - 异常
-
NullPointerException
- 如果component
是null
- 从以下版本开始:
- 1.7
- 另请参见:
-
JLayer
-
getUnwrappedView
public static Component getUnwrappedView(JViewport viewport)
返回第JViewport
的后代,而不是JLayer
一个实例。 如果找不到这样的后代,则返回null
。 如果viewport
的视图分量不是JLayer
,该方法等效于JViewport.getView()
否则JLayer.getView()
将被递归调用的所有降序JLayer
秒。- 参数
-
viewport
-JViewport
获得第一个后代,其中没有一个JLayer
实例。 - 结果
-
第一个
JViewport
的后代,不是JLayer
一个例子。 如果找不到这样的后代,则返回null
。 - 异常
-
NullPointerException
- 如果viewport
是null
- 从以下版本开始:
- 1.7
- 另请参见:
-
JViewport.getView()
,JLayer
-
-