|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
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()
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
public static void updateComponentTreeUI(Component c)
updateUI()
-- 也就是說,通過當前外觀初始化其 UI 屬性。
public static void invokeLater(Runnable doRun)
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() 拋出一個未捕獲的異常,則該事件指派執行緒將不會纏繞(不是該當前執行緒)。
有關此方法的其他文檔和範例,請參閱 The Java Tutorial 中的 How to Use Threads 一節。
從 1.3 版本開始,此方法只覆寫了 java.awt.EventQueue.invokeLater()
。
與 Swing 的其餘部分不同,可從任一執行緒中調用此方法。
invokeAndWait(java.lang.Runnable)
public static void invokeAndWait(Runnable doRun) throws InterruptedException, InvocationTargetException
doRun.run()
在 AWT 事件指派執行緒上同步執行。在所有掛起的 AWT 事件被處理完(然後)返回 doRun.run()
之前,此調用將處於阻塞狀態。此方法應該在應用程序執行緒需要更新該 GUI 時使用。而不應該從 EventDispatchThread
中調用此方法。下面是一個創建新應用程序執行緒的範例,該應用執行緒使用 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
(在調用者的執行緒上)捕獲並重新拋出。
有關此方法的更多文檔和範例,請參閱 The Java Tutorial 中的 How to Use Threads 一節。
從 1.3 版本開始,此方法只覆寫了 java.awt.EventQueue.invokeAndWait()
。
InterruptedException
- 如果等待事件指派執行緒執完成執行 doRun.run()
時被中斷
InvocationTargetException
- 如果在運行 doRun
時拋出異常invokeLater(java.lang.Runnable)
public static boolean isEventDispatchThread()
從 1.3 版本開始,此方法只覆寫了 java.awt.EventQueue.isDispatchThread()
。
public static int getAccessibleIndexInParent(Component c)
註:從 Java 2 平臺 v1.3 開始,建議開發人員調用 Component.AccessibleAWTComponent.getAccessibleIndexInParent(),而不是使用此方法。
public static Accessible getAccessibleAt(Component c, Point p)
Point
處包含的 Accessible
子物件。否則返回 null
。
Accessible
(如果存在);否則返回 null
public static AccessibleStateSet getAccessibleStateSet(Component c)
註:從 Java 2 平臺 v1.3 開始,建議開發人員調用 Component.AccessibleAWTComponent.getAccessibleIndexInParent(),而不是使用此方法。
AccessibleState
public static int getAccessibleChildrenCount(Component c)
註:從 Java 2 平臺 v1.3 開始,建議開發人員調用 Component.AccessibleAWTComponent.getAccessibleIndexInParent(),而不是使用此方法。
public static Accessible getAccessibleChild(Component c, int i)
註:從 Java 2 平臺 v1.3 開始,建議開發人員調用 Component.AccessibleAWTComponent.getAccessibleIndexInParent(),而不是使用此方法。
i
- 從零開始的子物件索引
@Deprecated public static Component findFocusOwner(Component c)
KeyboardFocusManager.getFocusOwner()
取代。
Component
的子 Component
(如果有)。
c
- 要搜尋焦點所有者的 Component
層次結構的根
comp
或 comp
的後代,則返回 null
KeyboardFocusManager.getFocusOwner()
public static JRootPane getRootPane(Component c)
null
。public static Component getRoot(Component c)
public static boolean processKeyBindings(KeyEvent event)
event
關聯的 Component
的鍵綁定。此方法僅當 event.getComponent()
不是從 JComponent
繼承的,或不從 JComponent
子類別中調用 super.processKeyEvent
時才有用。JComponent
自動處理其 processKeyEvent
方法中的綁定,因此一般情況下不需要直接調用此方法。
event
- 用於標識哪些綁定要處理以及哪個元件有焦點的 KeyEvent。
public static boolean notifyAction(Action action, KeyStroke ks, KeyEvent event, Object sender, int modifiers)
action
(且為非 null
),則調用 action
上的 actionPerformed
。ActionEvent 的命令由以下情況確定:
registerKeyboardAction
註冊的,則傳入命令字元串(如果傳入 null
,則使用 null
)。
null
。
getKeyChar
返回 KeyEvent.CHAR_UNDEFINED。
action
為非 null
且 actionPerformed 是在其上調用的,則將返回 true。
public static void replaceUIInputMap(JComponent component, int type, InputMap uiInputMap)
component
的 UI InputMap 更改為 uiInputMap
的便捷方法。如果 uiInputMap
為 null
,則將移除以前安裝的任何 UI InputMap。
public static void replaceUIActionMap(JComponent component, ActionMap uiActionMap)
component
的 UI ActionMap 更改為 uiActionMap
的便捷方法。如果 uiActionMap
為 null
,則將移除以前安裝的任何 UI ActionMap。
public static InputMap getUIInputMap(JComponent component, int condition)
component
中的條件 condition
的 UI 提供的 InputMap。
如果該 UI 未安裝指定型別的 InputMap,則將返回 null
。
public static ActionMap getUIActionMap(JComponent component)
component
中提供的 ActionMap。
如果該 UI 未安裝 ActionMap,則將返回 null
。
public static Rectangle calculateInnerArea(JComponent c, Rectangle r)
r
中,然後返回 r
。該位置和大小指定元件的邊界,進行調整以使其不包括邊框區域(即 insets)。此方法對實作繪製程式碼的類別很有用。
c
- 相關的 JComponent;如果為 null
,則此方法返回 null
r
- 要修改的 Rectangle 實例;可以為 null
null
,則返回 null
;否則返回傳入的矩形(如果為非 null
),或一個指定位置和大小資訊的新矩形
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。