java.lang.Object javax.swing.SwingUtilities
public class SwingUtilities
Swing 实用方法的集合。
字段摘要 |
---|
从接口 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 |
方法摘要 | |
---|---|
static Rectangle |
calculateInnerArea(JComponent c, Rectangle r) 将指定组件的内部绘制区域的位置和大小存储在 r 中,然后返回 r 。 |
static Rectangle[] |
computeDifference(Rectangle rectA, Rectangle rectB) 返回矩形数组的便捷方法,该矩形表示不与 rectB 重叠的 rectA 内的区域。 |
static Rectangle |
computeIntersection(int x, int y, int width, int height, Rectangle dest) 在未分配新矩形的情况下计算两个矩形的交集的便捷方法。 |
static int |
computeStringWidth(FontMetrics fm, String str) 使用具有指定“规格”(大小)的字体计算字符串的宽度。 |
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) 将 source 坐标系统中的 aPoint 转换到 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 子对象。 |
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) 返回包含位置 x 、y 的 parent 的最深可见后代组件。 |
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) 返回该 UI 在组件 component 中提供的 ActionMap。 |
static InputMap |
getUIInputMap(JComponent component, int condition) 返回由组件 component 中的条件 condition 的 UI 提供的 InputMap。 |
static Window |
getWindowAncestor(Component c) 返回 c 的第一个 Window 祖先;如果 c 未包含在 Window 内,则返回 null 。 |
static void |
invokeAndWait(Runnable doRun) 导致 doRun.run() 在 AWT 事件指派线程上同步执行。 |
static void |
invokeLater(Runnable doRun) 导致 doRun.run() 在 AWT 事件指派线程上异步执行。 |
static boolean |
isDescendingFrom(Component a, Component b) 如果组件 a 从组件 b 继承,则返回 true 。 |
static boolean |
isEventDispatchThread() 如果当前线程是 AWT 事件指派线程,则返回 true。 |
static boolean |
isLeftMouseButton(MouseEvent anEvent) 如果鼠标事件指定左边鼠标按键,则返回 true。 |
static boolean |
isMiddleMouseButton(MouseEvent anEvent) 如果鼠标事件指定中间鼠标按键,则返回 true。 |
static boolean |
isRectangleContainingRectangle(Rectangle a, Rectangle b) 如果 a 包含 b ,则返回 true。 |
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) 如果启用 action (且为非 null ),则调用 action 上的 actionPerformed 。 |
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) 处理与 event 关联的 Component 的键绑定。 |
static void |
replaceUIActionMap(JComponent component, ActionMap uiActionMap) 将 component 的 UI ActionMap 更改为 uiActionMap 的便捷方法。 |
static void |
replaceUIInputMap(JComponent component, int type, InputMap uiInputMap) 将 component 的 UI InputMap 更改为 uiInputMap 的便捷方法。 |
static void |
updateComponentTreeUI(Component c) 简单的外观更改:将树结构中的每个节点转到 updateUI() -- 也就是说,通过当前外观初始化其 UI 属性。 |
static Window |
windowForComponent(Component c) 返回 c 的第一个 Window 祖先;如果 c 未包含在 Window 内,则返回 null 。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
方法详细信息 |
---|
public static final boolean isRectangleContainingRectangle(Rectangle a, Rectangle b)
a
包含
b
,则返回 true。
public static Rectangle getLocalBounds(Component aComponent)
aComponent
的矩形 (0,0,bounds.width,bounds.height)。
public static Window getWindowAncestor(Component c)
c
的第一个
Window
祖先;如果
c
未包含在
Window
内,则返回
null
。
c
- 要获取其
Window
祖先的
Component
。
c
的第一个
Window
祖先;如果
c
未包含在
Window
内,则返回
null
。
public static Point convertPoint(Component source, Point aPoint, Component destination)
source
坐标系统中的
aPoint
转换到
destination
坐标系统。如果
source
为
null
,则假定
aPoint
位于
destination
的根组件坐标系统中。如果
destination
为
null
,则将
aPoint
转换到
source
的根组件坐标系统。如果
source
和
destination
都为
null
,则返回
aPoint
,无需进行任何转换。
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)
,无需进行任何转换。
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
,无需进行任何转换。
public static Container getAncestorOfClass(Class<?> c, Component comp)
comp
的便捷方法,返回它找到的类
c
的第一个对象。如果无法找到类
c
,可以返回
null
。
public static Container getAncestorNamed(String name, Component comp)
comp
的便捷方法,返回它找到的
name
第一个对象。如果无法找到
name
,可以返回
null
。
public static Component getDeepestComponentAt(Component parent, int x, int y)
x
、
y
的
parent
的最深可见后代组件。如果
parent
未包含指定位置,则返回
null
。如果
parent
不是容器,或者没有一个
parent
的可见后代包含指定位置,则返回
parent
。
parent
- 开始该搜索的根组件
x
- 该 x 目标位置
y
- 该 y 目标位置
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
不会更改。返回一个新事件。返回事件的
source
字段将被设置为
destination
。如果目标为非
null
,则在不更改源的情况下使用 translateMouseEvent() 方法将鼠标事件从一个组件转换到另一个组件。
public static void convertPointToScreen(Point p, Component c)
p
- 一个 Point 对象(已转换到新坐标系统)
c
- 一个 Component 对象
public static void convertPointFromScreen(Point p, Component c)
p
- 一个 Point 对象(已转换到新坐标系统)
c
- 一个 Component 对象
public static Window windowForComponent(Component c)
c
的第一个
Window
祖先;如果
c
未包含在
Window
内,则返回
null
。
注:此方法与 getWindowAncestor
提供的功能相同。
c
- 要获取其
Window
祖先的
Component
。
c
的第一个
Window
祖先;如果
c
未包含在
Window
内,则返回
null
。
public static boolean isDescendingFrom(Component a, Component b)
a
从组件
b
继承,则返回
true
。
public static Rectangle computeIntersection(int x, int y, int width, int height, Rectangle dest)
x
- 第一个矩形的左上顶点的 X 坐标
y
- 第一个矩形的左上顶点的 Y 坐标
width
- 第一个矩形的宽度
height
- 第一个矩形的高度
dest
- 第二个矩形
dest
,已改为指定交集
public static Rectangle computeUnion(int x, int y, int width, int height, Rectangle dest)
x
- 第一个矩形的 x 坐标
y
- 第一个矩形的 y 坐标
width
- 第一个矩形的宽度
height
- 第一个矩形的高度
dest
- 第二个矩形的坐标;在此矩形中返回两个矩形的并集
dest
Rectangle
public static Rectangle[] computeDifference(Rectangle rectA, Rectangle rectB)
rectB
重叠的
rectA
内的区域。如果两个矩形不重叠,则返回一个空数组。
public static boolean isLeftMouseButton(MouseEvent anEvent)
anEvent
- 一个 MouseEvent 对象
public static boolean isMiddleMouseButton(MouseEvent anEvent)
anEvent
- 一个 MouseEvent 对象
public static boolean isRightMouseButton(MouseEvent anEvent)
anEvent
- 一个 MouseEvent 对象
public static int computeStringWidth(FontMetrics fm, String str)
fm
- 用来计算的 FontMetrics 对象
str
- 要计算的字符串
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)
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)
public static void paintComponent(Graphics g, Component c, Container p, int x, int y, int w, int h)
Graphics
上绘制组件。此方法主要用于呈现不作为可见包含层次结构的一部分而存在,但用于呈现的
Component
。例如,如果执行自己的呈现并想呈现某些文本(甚至 HTML),则可以利用
JLabel
的文本呈现支持并通过此方法直接绘制它,而不会将标签添加到可见包含层次结构中。
此方法利用 CellRendererPane
处理实际的绘制,只有使用了用于呈现的组件时才建议使用此方法。如果利用多个组件处理呈现,则就像 JTable
所做的一样,那么可直接使用 CellRendererPane
。否则,如下所述,每个 Component
可以以 CellRendererPane
结尾。
如果 c
的父组件不是 CellRendererPane
,则创建一个新的 CellRendererPane
,将 c
添加到其中,并将 CellRendererPane
添加到 p
。如果 c
的父组件是 CellRendererPane
,并且 CellRendererPane
的父级不是 p
,则将它添加到 p
。
该组件应该从 JComponent
继承或者是另一种轻量级组件。轻量级组件是一个其 "lightweight" 属性(由该 Component
isLightweight
方法返回)为 true 的组件。如果该 Component 不是轻量级的,则可能发生以下糟糕的事情:崩溃、异常、绘制问题……
g
- 要在其上绘制的
Graphics
对象
c
- 要绘制的
Component
p
- 该中间
Container
x
- 指定要在其中绘制的区域左侧的 int 值,以像素为单位,通过图形环境的左边缘测量
y
- 指定要在其中绘制的区域顶部的 int 值,以像素为单位,通过图形环境的顶部边缘测量
w
- 指定要在其中绘制的区域宽度的 int 值,以像素为单位
h
- 指定要在其中绘制的区域高度的 int 值,以像素为单位
CellRendererPane
,
Component.isLightweight()