|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.awt.Component java.awt.Container java.awt.Window java.awt.Frame
public class Frame
Frame
是帶有標題和邊框的頂層視窗。
窗體的大小包括為邊框指定的所有區域。邊框區域的尺寸可以使用 getInsets
方法獲得,但是,由於這些尺寸與平臺相關,因此在通過調用 pack
或 show
將窗體設置為可顯示之前,將無法獲得有效的 insets 值。由於窗體的總大小包括了邊框區,因此邊框實際上遮掩了窗體的部分區域,並將可用於在矩形中呈現和/或顯示子部件的區域限制在一個矩形內,該矩形左上角的位置為 (insets.left, insets.top)
,寬度為 width - (insets.left + insets.right)
,長度為 height - (insets.top + insets.bottom)
。
窗體的預設佈局為 BorderLayout
。
使用 setUndecorated
,窗體可以關閉本機裝飾(即 Frame
和 Titlebar
)。但只有在窗體不是 displayable
時才能這樣做。
在多螢幕環境中,通過使用 Frame(GraphicsConfiguration)
或 Frame(String title, GraphicsConfiguration)
建構 Frame
,可以在不同的螢幕設備上創建 Frame
。GraphicsConfiguration
物件是目標螢幕設備的 GraphicsConfiguration
物件之一。
在虛擬設備多螢幕環境中(其中桌面區域可以跨越多物理螢幕設備),所有配置的邊界都是相對於虛擬坐標系的。虛擬坐標系的原點位於主物理螢幕的左上角。是否使用負坐標取決於主物理螢幕在虛擬設備中的位置,如下圖所示。
在此環境中調用 setLocation
時,必須傳遞一個虛擬坐標到此方法中。類似地,對 Frame
調用 getLocationOnScreen
將返回虛擬設備坐標。調用 GraphicsConfiguration
的 getBounds
方法可尋找它在虛擬坐標系中的原點。
以下程式碼將 Frame
的位置設置為 (10, 10)(相對於相應 GraphicsConfiguration
的物理螢幕的原點)。如果不考慮 GraphicsConfiguration
的邊界,則 Frame
的位置將被設置為 (10, 10)(相對於虛擬坐標系),並出現在主物理螢幕上,主物理螢幕不同於指定的 GraphicsConfiguration
的物理螢幕。
Frame f = new Frame(GraphicsConfiguration gc); Rectangle bounds = gc.getBounds(); f.setLocation(10 + bounds.x, 10 + bounds.y);
窗體能夠產生以下型別的 WindowEvent
:
WINDOW_OPENED
WINDOW_CLOSING
:WINDOW_CLOSED
WINDOW_ICONIFIED
WINDOW_DEICONIFIED
WINDOW_ACTIVATED
WINDOW_DEACTIVATED
WINDOW_GAINED_FOCUS
WINDOW_LOST_FOCUS
WINDOW_STATE_CHANGED
WindowEvent
,
Window.addWindowListener(java.awt.event.WindowListener)
,
序列化表格巢狀類別摘要 | |
---|---|
protected class |
Frame.AccessibleAWTFrame
此類別實作對 Frame 類別的可存取性支持。 |
從類別 java.awt.Window 繼承的巢狀類別/介面 |
---|
Window.AccessibleAWTWindow |
從類別 java.awt.Container 繼承的巢狀類別/介面 |
---|
Container.AccessibleAWTContainer |
從類別 java.awt.Component 繼承的巢狀類別/介面 |
---|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy |
欄位摘要 | |
---|---|
static int |
CROSSHAIR_CURSOR
已過時。 由 Cursor.CROSSHAIR_CURSOR 取代。 |
static int |
DEFAULT_CURSOR
已過時。 由 Cursor.DEFAULT_CURSOR 取代。 |
static int |
E_RESIZE_CURSOR
已過時。 由 Cursor.E_RESIZE_CURSOR 取代。 |
static int |
HAND_CURSOR
已過時。 由 Cursor.HAND_CURSOR 取代。 |
static int |
ICONIFIED
此狀態位指示將窗體圖標化。 |
static int |
MAXIMIZED_BOTH
此狀態位遮罩碼指示將窗體完全最大化(水平和垂直方向)。 |
static int |
MAXIMIZED_HORIZ
此狀態位指示在水平方向將窗體最大化。 |
static int |
MAXIMIZED_VERT
此狀態位指示在垂直方向將窗體最大化。 |
static int |
MOVE_CURSOR
已過時。 由 Cursor.MOVE_CURSOR 取代。 |
static int |
N_RESIZE_CURSOR
已過時。 由 Cursor.N_RESIZE_CURSOR 取代。 |
static int |
NE_RESIZE_CURSOR
已過時。 由 Cursor.NE_RESIZE_CURSOR 取代。 |
static int |
NORMAL
窗體處於 "normal" 狀態。 |
static int |
NW_RESIZE_CURSOR
已過時。 由 Cursor.NW_RESIZE_CURSOR 取代。 |
static int |
S_RESIZE_CURSOR
已過時。 由 Cursor.S_RESIZE_CURSOR 取代。 |
static int |
SE_RESIZE_CURSOR
已過時。 由 Cursor.SE_RESIZE_CURSOR 取代。 |
static int |
SW_RESIZE_CURSOR
已過時。 由 Cursor.SW_RESIZE_CURSOR 取代。 |
static int |
TEXT_CURSOR
已過時。 由 Cursor.TEXT_CURSOR 取代。 |
static int |
W_RESIZE_CURSOR
已過時。 由 Cursor.W_RESIZE_CURSOR 取代。 |
static int |
WAIT_CURSOR
已過時。 由 Cursor.WAIT_CURSOR 取代。 |
從類別 java.awt.Component 繼承的欄位 |
---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
從介面 java.awt.image.ImageObserver 繼承的欄位 |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
建構子摘要 | |
---|---|
Frame()
建構一個最初不可見的 Frame 新實例()。 |
|
Frame(GraphicsConfiguration gc)
使用指定的 GraphicsConfiguration 建構一個最初不可見的新 Frame 。 |
|
Frame(String title)
建構一個新的、最初不可見的、具有指定標題的 Frame 物件。 |
|
Frame(String title,
GraphicsConfiguration gc)
建構一個新的、初始不可見的、具有指定標題和 GraphicsConfiguration 的 Frame 物件。 |
方法摘要 | |
---|---|
void |
addNotify()
通過將此窗體連接到本機螢幕資源,使其成為可顯示的。 |
AccessibleContext |
getAccessibleContext()
獲取與此窗體有關的 AccessibleContext。 |
int |
getCursorType()
已過時。 從 JDK version 1.1 開始,由 Component.getCursor() 取代。 |
int |
getExtendedState()
獲取此窗體的狀態。 |
static Frame[] |
getFrames()
返回一個此應用程序創建的所有 Frame 所組成的陣列。 |
Image |
getIconImage()
返回要作為此窗體圖標顯示的圖像。 |
Rectangle |
getMaximizedBounds()
獲取此窗體的最大化邊界。 |
MenuBar |
getMenuBar()
獲取此窗體的選單欄。 |
int |
getState()
獲取此窗體的狀態(已廢棄)。 |
String |
getTitle()
獲得窗體的標題。 |
boolean |
isResizable()
指示此窗體是否可由使用者調整大小。 |
boolean |
isUndecorated()
指示此窗體是否未裝飾。 |
protected String |
paramString()
返回表示此 Frame 狀態的字元串。 |
void |
remove(MenuComponent m)
從此窗體移除指定的選單欄。 |
void |
removeNotify()
通過移除與本機螢幕資源的連接,將此窗體設置為不可顯示的。 |
void |
setCursor(int cursorType)
已過時。 從 JDK version 1.1 開始,由 Component.setCursor(Cursor) 取代。 |
void |
setExtendedState(int state)
設置此窗體的狀態。 |
void |
setIconImage(Image image)
設置要作為此視窗圖標顯示的圖像。 |
void |
setMaximizedBounds(Rectangle bounds)
設置此窗體的最大化邊界。 |
void |
setMenuBar(MenuBar mb)
將此窗體的選單欄設置為指定的選單欄。 |
void |
setResizable(boolean resizable)
設置此窗體是否可由使用者調整大小。 |
void |
setState(int state)
設置此窗體的狀態(已廢棄)。 |
void |
setTitle(String title)
將此窗體的標題設置為指定的字元串。 |
void |
setUndecorated(boolean undecorated)
禁用或啟用此窗體的裝飾。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
從介面 java.awt.MenuContainer 繼承的方法 |
---|
getFont, postEvent |
欄位詳細資訊 |
---|
@Deprecated public static final int DEFAULT_CURSOR
Cursor.DEFAULT_CURSOR
取代。@Deprecated public static final int CROSSHAIR_CURSOR
Cursor.CROSSHAIR_CURSOR
取代。@Deprecated public static final int TEXT_CURSOR
Cursor.TEXT_CURSOR
取代。@Deprecated public static final int WAIT_CURSOR
Cursor.WAIT_CURSOR
取代。@Deprecated public static final int SW_RESIZE_CURSOR
Cursor.SW_RESIZE_CURSOR
取代。@Deprecated public static final int SE_RESIZE_CURSOR
Cursor.SE_RESIZE_CURSOR
取代。@Deprecated public static final int NW_RESIZE_CURSOR
Cursor.NW_RESIZE_CURSOR
取代。@Deprecated public static final int NE_RESIZE_CURSOR
Cursor.NE_RESIZE_CURSOR
取代。@Deprecated public static final int N_RESIZE_CURSOR
Cursor.N_RESIZE_CURSOR
取代。@Deprecated public static final int S_RESIZE_CURSOR
Cursor.S_RESIZE_CURSOR
取代。@Deprecated public static final int W_RESIZE_CURSOR
Cursor.W_RESIZE_CURSOR
取代。@Deprecated public static final int E_RESIZE_CURSOR
Cursor.E_RESIZE_CURSOR
取代。@Deprecated public static final int HAND_CURSOR
Cursor.HAND_CURSOR
取代。@Deprecated public static final int MOVE_CURSOR
Cursor.MOVE_CURSOR
取代。public static final int NORMAL
setExtendedState(int)
,
getExtendedState()
,
常數欄位值public static final int ICONIFIED
setExtendedState(int)
,
getExtendedState()
,
常數欄位值public static final int MAXIMIZED_HORIZ
setExtendedState(int)
,
getExtendedState()
,
常數欄位值public static final int MAXIMIZED_VERT
setExtendedState(int)
,
getExtendedState()
,
常數欄位值public static final int MAXIMIZED_BOTH
MAXIMIZED_VERT | MAXIMIZED_HORIZ
的一種便捷別名。
注意,要正確測試窗體是否完全最大化,使用以下方法:
(state & Frame.MAXIMIZED_BOTH) == Frame.MAXIMIZED_BOTH
要測試窗體是否在某個 方向最大化,使用:
(state & Frame.MAXIMIZED_BOTH) != 0
setExtendedState(int)
,
getExtendedState()
,
常數欄位值建構子詳細資訊 |
---|
public Frame() throws HeadlessException
Frame
新實例()。Frame
的標題為空。
HeadlessException
- 當 GraphicsEnvironment.isHeadless()
返回 true
時GraphicsEnvironment.isHeadless()
,
Component.setSize(int, int)
,
Component.setVisible(boolean)
public Frame(GraphicsConfiguration gc)
GraphicsConfiguration
建構一個最初不可見的新 Frame
。
gc
- 目標螢幕設備的 GraphicsConfiguration
。如果 gc
為 null
,則假定它為系統預設的 GraphicsConfiguration
。
IllegalArgumentException
- 如果 gc
不是來自螢幕設備。
HeadlessException
- 當 GraphicsEnvironment.isHeadless()
返回 true
時GraphicsEnvironment.isHeadless()
public Frame(String title) throws HeadlessException
Frame
物件。
title
- 要顯示在窗體邊框中的標題。null
值視為空字元串 ""。
HeadlessException
- 當 GraphicsEnvironment.isHeadless()
返回 true
時GraphicsEnvironment.isHeadless()
,
Component.setSize(int, int)
,
Component.setVisible(boolean)
,
GraphicsConfiguration.getBounds()
public Frame(String title, GraphicsConfiguration gc)
GraphicsConfiguration
的 Frame
物件。
title
- 要顯示在窗體邊框中的標題。null
值視為空字元串 ""。gc
- 目標螢幕設備的 GraphicsConfiguration
。如果 gc
為 null
,則假定它為系統預設的 GraphicsConfiguration
。
IllegalArgumentException
- 如果 gc
不是來自螢幕設備。
HeadlessException
- 當 GraphicsEnvironment.isHeadless()
返回 true
時GraphicsEnvironment.isHeadless()
,
Component.setSize(int, int)
,
Component.setVisible(boolean)
,
GraphicsConfiguration.getBounds()
方法詳細資訊 |
---|
public void addNotify()
Window
中的 addNotify
Component.isDisplayable()
,
removeNotify()
public String getTitle()
setTitle(String)
public void setTitle(String title)
title
- 要顯示在窗體邊框中的標題。null
值視為空字元串 ""。getTitle()
public Image getIconImage()
此方法已廢棄,保留它只是為了向後相容性。使用 Window.getIconImages()
代替。
如果將幾個圖像的列表指定為 Window 的圖標,則此方法返回列表的第一項。
null
。setIconImage(Image)
,
Window.getIconImages()
,
Window.setIconImages(java.util.List extends java.awt.Image>)
public void setIconImage(Image image)
將單個圖像指定為視窗的圖標時,可以使用此方法代替 setIconImages()
。
以下語句:
setIconImage(image);等價於:
ArrayListimageList = new ArrayList (); imageList.add(image); setIconImages(imageList);
註:根據上下文的不同(例如,視窗裝飾、視窗列表、任務欄等),本機視窗系統可以使用不同尺寸的不同圖像表示一個視窗。也可以對所有上下文使用一個圖像,或者根本不用圖像。
Window
中的 setIconImage
image
- 要顯示的圖標圖像。Window.setIconImages(java.util.List extends java.awt.Image>)
,
Window.getIconImages()
public MenuBar getMenuBar()
null
。setMenuBar(MenuBar)
public void setMenuBar(MenuBar mb)
mb
- 正被設置的選單欄。如果此參數為 null
,則移除此窗體上現有的所有選單欄。getMenuBar()
public boolean isResizable()
true
;否則返回 false
。setResizable(boolean)
public void setResizable(boolean resizable)
resizable
- 如果此窗體是可調整大小的,則為 true
;否則為 false
。isResizable()
public void setState(int state)
在較早的 JDK 版本中,窗體的狀態只能為 NORMAL 或 ICONIFIED。自從 JDK 1.4 以來,受支持的窗體狀態集合擴大了,窗體狀態表示為逐位遮罩碼。
為了與原有的程序相容,此方法仍然接受 Frame.NORMAL
和 Frame.ICONIFIED
,但它只改變窗體的圖標狀態,而不影響窗體其他方面的狀態。
state
- Frame.NORMAL
或 Frame.ICONIFIED
。getState()
,
setExtendedState(int)
public void setExtendedState(int state)
NORMAL
ICONIFIED
MAXIMIZED_HORIZ
MAXIMIZED_VERT
MAXIMIZED_BOTH
MAXIMIZED_HORIZ
和 MAXIMIZED_VERT
。
注意,如果該狀態在給定平臺上不受支持,則什麼也不會發生。應用程序可以通過 java.awt.Toolkit#isFrameStateSupported(int state)
方法確定特定的狀態是否可用。
state
- 窗體狀態常數的逐位遮罩碼getExtendedState()
,
Toolkit.isFrameStateSupported(int)
public int getState()
在較早的 JDK 版本中,窗體的狀態只能為 NORMAL 或 ICONIFIED。自從 JDK 1.4 以來,受支持的窗體狀態集合擴大了,窗體狀態表示為逐位遮罩碼。
為了與原有的程序相容,此方法仍然返回 Frame.NORMAL
和 Frame.ICONIFIED
,但它只報告窗體的圖標狀態,而不報告窗體其他方面的狀態。
Frame.NORMAL
或 Frame.ICONIFIED
。setState(int)
,
getExtendedState()
public int getExtendedState()
NORMAL
ICONIFIED
MAXIMIZED_HORIZ
MAXIMIZED_VERT
MAXIMIZED_BOTH
MAXIMIZED_HORIZ
和 MAXIMIZED_VERT
。
setExtendedState(int)
public void setMaximizedBounds(Rectangle bounds)
當窗體處於最大化狀態時,系統提供預設邊界。此方法允許覆寫系統提供的部分或全部值。
如果 bounds
為 null
,則接受系統提供的邊界。如果 bound 不為 null
,則可以覆寫系統提供的某些值而接受其他值,這通過將希望從系統接受的那些欄位設置為 Integer.MAX_VALUE
來完成。
在某些系統中,只考慮部分邊界的大小。
bounds
- 最大化狀態的邊界getMaximizedBounds()
public Rectangle getMaximizedBounds()
Integer.MAX_VALUE
,指示必須使用系統為該欄位提供的值。
null
setMaximizedBounds(Rectangle)
public void setUndecorated(boolean undecorated)
undecorated
- 如果沒有啟用窗體裝飾,則為 true
;如果啟用了窗體裝飾,則為 false
。
IllegalComponentStateException
- 如果窗體是可顯示的。isUndecorated()
,
Component.isDisplayable()
,
JFrame.setDefaultLookAndFeelDecorated(boolean)
public boolean isUndecorated()
true
;否則返回 false
。setUndecorated(boolean)
public void remove(MenuComponent m)
MenuContainer
中的 remove
Component
中的 remove
m
- 要移除的選單元件。如果 m
為 null
,則不執行任何操作。Component.add(PopupMenu)
public void removeNotify()
Window
中的 removeNotify
Component.isDisplayable()
,
addNotify()
protected String paramString()
Frame
狀態的字元串。此方法僅用於除錯目的,對於各個實作,所返回字元串的內容和格式可能有所不同。返回的字元串可能為空,但不可能為 null
。
Container
中的 paramString
@Deprecated public void setCursor(int cursorType)
Component.setCursor(Cursor)
取代。
@Deprecated public int getCursorType()
Component.getCursor()
取代。
public static Frame[] getFrames()
Frame
所組成的陣列。如果從 applet 調用,則陣列只包括該 applet 可存取的 Frame
。
警告: 此方法可能返回系統創建的窗體,如 Swing 使用的共享的、隱藏的窗體。應用程序不應該假定這些視窗存在,也不應該假定與這些窗體有關的任何內容(如元件位置、LayoutManager
或序列化)存在。
注:若要獲得沒有所有者的視窗列表,包括沒有所有者的 Dialog
(在版本 1.6 中引入),請使用 Window.getOwnerlessWindows
。
Window.getWindows(sun.awt.AppContext)
,
Window.getOwnerlessWindows()
public AccessibleContext getAccessibleContext()
Accessible
中的 getAccessibleContext
Window
中的 getAccessibleContext
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。