|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.awt.Component java.awt.Container java.awt.Window java.awt.Frame javax.swing.JFrame
public class JFrame
java.awt.Frame
的擴展版本,該版本添加了對 JFC/Swing 元件架構的支持。有關使用 JFrame
的導向任務的文檔,請參閱 The Java Tutorial 中的 How to Make Frames 一節。
JFrame
類別與 Frame
輕微不相容。與其他所有 JFC/Swing 頂層容器一樣,JFrame
套件含一個 JRootPane
作為其唯一的子容器。根據規定,根窗格所提供的內容窗格應該套件含 JFrame
所顯示的所有非選單元件。這不同於 AWT Frame
。為了方便地使用 add
及其變體,已經覆寫了 remove
和 setLayout
,以在必要時將其轉發到 contentPane
。這意味著可以編寫:
frame.add(child);子級將被添加到 contentPane。內容窗格始終是非 null 的。試圖將其設置為 null 會導致 JFrame 拋出異常。預設的內容窗格上會設置有 BorderLayout 管理器。有關添加、移除和設置
JFrame
的 LayoutManager
的詳細資訊,請參閱 RootPaneContainer
。
與 Frame
不同,當使用者試圖關閉視窗時,JFrame
知道如何進行回應。使用者關閉視窗時,預設的行為只是簡單地隱藏 JFrame。要更改預設的行為,可調用方法 setDefaultCloseOperation(int)
。要使 JFrame
的行為與 Frame
實例相同,請使用 setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE)
。
有關內容窗格和根窗格提供的其他功能的更多資訊,請參閱 The Java Tutorial 中的 Using Top-Level Containers 一節。
在多螢幕環境中,可以在不同的螢幕設備上創建一個 JFrame
。有關更多資訊,請參閱 Frame
。
警告:Swing 不是執行緒安全的。有關更多資訊,請參閱 Swing's Threading Policy。
警告:此類別的序列化物件與以後的 Swing 版本不相容。當前序列化支持適用於短期存儲,或適用於在運行相同 Swing 版本的應用程序之間進行 RMI(Remote Method Invocation,遠端方法調用)。從 1.4 版本開始,已在 java.beans
套件中添加了支持所有 JavaBeansTM 長期存儲的功能。請參閱 XMLEncoder
。
JRootPane
,
setDefaultCloseOperation(int)
,
WindowListener.windowClosing(java.awt.event.WindowEvent)
,
RootPaneContainer
巢狀類別摘要 | |
---|---|
protected class |
JFrame.AccessibleJFrame
此類別實作對 JFrame 類別的可存取性支持。 |
從類別 java.awt.Frame 繼承的巢狀類別/介面 |
---|
Frame.AccessibleAWTFrame |
從類別 java.awt.Window 繼承的巢狀類別/介面 |
---|
Window.AccessibleAWTWindow |
從類別 java.awt.Container 繼承的巢狀類別/介面 |
---|
Container.AccessibleAWTContainer |
從類別 java.awt.Component 繼承的巢狀類別/介面 |
---|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy |
欄位摘要 | |
---|---|
protected AccessibleContext |
accessibleContext
可存取的上下文屬性。 |
static int |
EXIT_ON_CLOSE
退出應用程序後的預設視窗關閉操作。 |
protected JRootPane |
rootPane
JRootPane 實例管理此窗體的 contentPane 和可選的 menuBar ,以及 glassPane 。 |
protected boolean |
rootPaneCheckingEnabled
如果為 true,則將對 add 和 setLayout 的調用轉發到 contentPane 。 |
從類別 java.awt.Component 繼承的欄位 |
---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
從介面 javax.swing.WindowConstants 繼承的欄位 |
---|
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE |
從介面 java.awt.image.ImageObserver 繼承的欄位 |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
建構子摘要 | |
---|---|
JFrame()
建構一個初始時不可見的新窗體。 |
|
JFrame(GraphicsConfiguration gc)
以螢幕設備的指定 GraphicsConfiguration 和空白標題創建一個 Frame 。 |
|
JFrame(String title)
創建一個新的、初始不可見的、具有指定標題的 Frame 。 |
|
JFrame(String title,
GraphicsConfiguration gc)
創建一個具有指定標題和指定螢幕設備的 GraphicsConfiguration 的 JFrame 。 |
方法摘要 | |
---|---|
protected void |
addImpl(Component comp,
Object constraints,
int index)
添加指定的子 Component 。 |
protected JRootPane |
createRootPane()
由建構子調用,以創建預設的 rootPane 。 |
protected void |
frameInit()
由建構子調用,以適當地初始化 JFrame 。 |
AccessibleContext |
getAccessibleContext()
獲得與此 JFrame 關聯的 AccessibleContext。 |
Container |
getContentPane()
返回此窗體的 contentPane 物件 |
int |
getDefaultCloseOperation()
返回使用者在此窗體上發起 "close" 時執行的操作。 |
Component |
getGlassPane()
返回此窗體的 glassPane 物件。 |
Graphics |
getGraphics()
為元件創建一個圖形上下文。 |
JMenuBar |
getJMenuBar()
返回此窗體上設置的選單欄。 |
JLayeredPane |
getLayeredPane()
返回此窗體的 layeredPane 物件。 |
JRootPane |
getRootPane()
返回此窗體的 rootPane 物件。 |
TransferHandler |
getTransferHandler()
獲取 transferHandler 屬性。 |
static boolean |
isDefaultLookAndFeelDecorated()
如果新創建的 JFrame 應該由當前外觀為其提供 Window 裝飾,則返回 true。 |
protected boolean |
isRootPaneCheckingEnabled()
返回是否將對 add 和 setLayout 的調用轉發到 contentPane 。 |
protected String |
paramString()
返回此 JFrame 的字元串表示形式。 |
protected void |
processWindowEvent(WindowEvent e)
處理此元件上發生的視窗事件。 |
void |
remove(Component comp)
從該容器中移除指定元件。 |
void |
repaint(long time,
int x,
int y,
int width,
int height)
在 time 毫秒內重繪此元件的指定矩形區域。 |
void |
setContentPane(Container contentPane)
設置 contentPane 屬性。 |
void |
setDefaultCloseOperation(int operation)
設置使用者在此窗體上發起 "close" 時預設執行的操作。 |
static void |
setDefaultLookAndFeelDecorated(boolean defaultLookAndFeelDecorated)
提供一個關於新創建的 JFrame 是否應該具有當前外觀為其提供的 Window 裝飾(如邊框、關閉視窗的小部件、標題等等)的提示。 |
void |
setGlassPane(Component glassPane)
設置 glassPane 屬性。 |
void |
setIconImage(Image image)
設置要作為此視窗圖標顯示的圖像。 |
void |
setJMenuBar(JMenuBar menubar)
設置此窗體的選單欄。 |
void |
setLayeredPane(JLayeredPane layeredPane)
設置 layeredPane 屬性。 |
void |
setLayout(LayoutManager manager)
設置 LayoutManager 。 |
protected void |
setRootPane(JRootPane root)
設置 rootPane 屬性。 |
protected void |
setRootPaneCheckingEnabled(boolean enabled)
設置是否將對 add 和 setLayout 的調用轉發到 contentPane 。 |
void |
setTransferHandler(TransferHandler newHandler)
設置 transferHandler 屬性,該屬性是支持向此元件傳輸資料的機制。 |
void |
update(Graphics g)
只是調用 paint(g) 。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
從介面 java.awt.MenuContainer 繼承的方法 |
---|
getFont, postEvent |
欄位詳細資訊 |
---|
public static final int EXIT_ON_CLOSE
SecurityException
。建議僅在應用程序中使用此設置。
protected JRootPane rootPane
JRootPane
實例管理此窗體的 contentPane
和可選的 menuBar
,以及 glassPane
。
JRootPane
,
RootPaneContainer
protected boolean rootPaneCheckingEnabled
add
和 setLayout
的調用轉發到 contentPane
。此設置初始為 false,但在建構 JFrame
時將其設置為 true。
isRootPaneCheckingEnabled()
,
setRootPaneCheckingEnabled(boolean)
,
RootPaneContainer
protected AccessibleContext accessibleContext
建構子詳細資訊 |
---|
public JFrame() throws HeadlessException
此建構子將元件的 locale 屬性設置為 JComponent.getDefaultLocale
所返回的值。
HeadlessException
- 如果 GraphicsEnvironment.isHeadless() 返回 true。GraphicsEnvironment.isHeadless()
,
Component.setSize(int, int)
,
Component.setVisible(boolean)
,
JComponent.getDefaultLocale()
public JFrame(GraphicsConfiguration gc)
GraphicsConfiguration
和空白標題創建一個 Frame
。
此建構子將元件的 locale 屬性設置為 JComponent.getDefaultLocale
所返回的值。
gc
- 用於建構新 Frame
的 GraphicsConfiguration
;如果 gc
為 null
,則使用系統預設的 GraphicsConfiguration
IllegalArgumentException
- 如果 gc
不是來自螢幕設備。GraphicsEnvironment.isHeadless() 返回 true 時總是拋出此異常。GraphicsEnvironment.isHeadless()
,
JComponent.getDefaultLocale()
public JFrame(String title) throws HeadlessException
Frame
。
此建構子將元件的 locale 屬性設置為 JComponent.getDefaultLocale
所返回的值。
title
- 該窗體的標題
HeadlessException
- 如果 GraphicsEnvironment.isHeadless() 返回 true。GraphicsEnvironment.isHeadless()
,
Component.setSize(int, int)
,
Component.setVisible(boolean)
,
JComponent.getDefaultLocale()
public JFrame(String title, GraphicsConfiguration gc)
GraphicsConfiguration
的 JFrame
。
此建構子將元件的 locale 屬性設置為 JComponent.getDefaultLocale
所返回的值。
title
- 要顯示在窗體邊框中的標題。將 null
值視為空字元串 ""。gc
- 用於建構新 JFrame
的 GraphicsConfiguration
;如果 gc
為 null
,則使用系統預設的 GraphicsConfiguration
IllegalArgumentException
- 如果 gc
不是來自螢幕設備。GraphicsEnvironment.isHeadless() 返回 true 時總是拋出此異常。GraphicsEnvironment.isHeadless()
,
JComponent.getDefaultLocale()
方法詳細資訊 |
---|
protected void frameInit()
JFrame
。
protected JRootPane createRootPane()
rootPane
。
protected void processWindowEvent(WindowEvent e)
defaultCloseOperation
屬性的設置來指定。
Window
中的 processWindowEvent
e
- 視窗事件setDefaultCloseOperation(int)
,
Window.processWindowEvent(java.awt.event.WindowEvent)
public void setDefaultCloseOperation(int operation)
DO_NOTHING_ON_CLOSE
(在 WindowConstants
中定義):不執行任何操作;要求程序在已註冊的 WindowListener
物件的 windowClosing
方法中處理該操作。
HIDE_ON_CLOSE
(在 WindowConstants
中定義):調用任意已註冊的 WindowListener
物件後自動隱藏該窗體。
DISPOSE_ON_CLOSE
(在 WindowConstants
中定義):調用任意已註冊 WindowListener
的物件後自動隱藏並釋放該窗體。
EXIT_ON_CLOSE
(在 JFrame
中定義):使用 System
exit
方法退出應用程序。僅在應用程序中使用。
預設情況下,該值被設置為 HIDE_ON_CLOSE
。更改此屬性的值將導致觸發屬性更改事件,其屬性名稱為 "defaultCloseOperation"。
註:當 Java 虛擬機器 (VM) 中最後一個可顯示視窗被釋放後,虛擬機器可能會終止。有關更多資訊,請參閱 AWT Threading Issues。
operation
- 使用者關閉該窗體時應該執行的操作
IllegalArgumentException
- 如果 defaultCloseOperation 值不是上述有效值之一
SecurityException
- 如果已指定 EXIT_ON_CLOSE
並且 SecurityManager
不允許調用者調用 System.exit
Window.addWindowListener(java.awt.event.WindowListener)
,
getDefaultCloseOperation()
,
WindowConstants
,
Runtime.exit(int)
public int getDefaultCloseOperation()
setDefaultCloseOperation(int)
public void setTransferHandler(TransferHandler newHandler)
transferHandler
屬性,該屬性是支持向此元件傳輸資料的機制。如果該元件不支持資料傳輸操作,那麼請使用 null
。
如果系統屬性 suppressSwingDropSupport
為 false
(預設值),並且此元件上的當前放置目標為 null
或者不是使用者設置的放置目標,則此方法將按如下方式更改放置目標:如果 newHandler
為 null
,則它將清除放置目標。如果不為 null
,則它將安裝一個新的 DropTarget
。
註:當用於 JFrame
時,TransferHandler
只提供資料導入功能,與資料導出相關的方法當前用於 JComponent
。
有關更多資訊,請參閱 The Java Tutorial 中的 How to Use Drag and Drop and Data Transfer 一節。
newHandler
- 新的 TransferHandler
TransferHandler
,
getTransferHandler()
,
Component.setDropTarget(java.awt.dnd.DropTarget)
public TransferHandler getTransferHandler()
transferHandler
屬性。
transferHandler
屬性的值TransferHandler
,
setTransferHandler(javax.swing.TransferHandler)
public void update(Graphics g)
paint(g)
。覆寫此方法,以防止不必要的調用清除背景。
Container
中的 update
g
- 要在其中進行繪製的 Graphics 上下文Component.update(Graphics)
public void setJMenuBar(JMenuBar menubar)
menubar
- 放置於該窗體中的選單欄getJMenuBar()
public JMenuBar getJMenuBar()
setJMenuBar(javax.swing.JMenuBar)
protected boolean isRootPaneCheckingEnabled()
add
和 setLayout
的調用轉發到 contentPane
。
add
和 setLayout
,則返回 true;否則返回 falseaddImpl(java.awt.Component, java.lang.Object, int)
,
setLayout(java.awt.LayoutManager)
,
setRootPaneCheckingEnabled(boolean)
,
RootPaneContainer
protected void setRootPaneCheckingEnabled(boolean enabled)
add
和 setLayout
的調用轉發到 contentPane
。
enabled
- 如果轉發 add
和 setLayout
,則為 true;如果應直接在 JFrame
上操作,則為 false。addImpl(java.awt.Component, java.lang.Object, int)
,
setLayout(java.awt.LayoutManager)
,
isRootPaneCheckingEnabled()
,
RootPaneContainer
protected void addImpl(Component comp, Object constraints, int index)
Component
。覆寫此方法,從而有條件地將調用轉發到 contentPane
。預設情況下將子元件添加到 contentPane
而不是窗體中,有關詳細資訊,請參閱 RootPaneContainer
。
Container
中的 addImpl
comp
- 要添加子元件的元件constraints
- 要遵守的約束條件index
- 索引
IllegalArgumentException
- 如果 index
無效
IllegalArgumentException
- 如果將容器的父級添加到其本身
IllegalArgumentException
- 如果向容器內添加視窗setRootPaneCheckingEnabled(boolean)
,
RootPaneContainer
public void remove(Component comp)
comp
不是 rootPane
,則將調用轉發到 contentPane
。如果 comp
不是 JFrame
或 contentPane
的子級,則不執行任何操作。
Container
中的 remove
comp
- 要移除的元件
NullPointerException
- 如果 comp
為 nullContainer.add(java.awt.Component)
,
RootPaneContainer
public void setLayout(LayoutManager manager)
LayoutManager
。覆寫此方法,從而有條件地將調用轉發到 contentPane
。有關更多資訊,請參閱 RootPaneContainer
。
Container
中的 setLayout
manager
- LayoutManager
setRootPaneCheckingEnabled(boolean)
,
RootPaneContainer
public JRootPane getRootPane()
rootPane
物件。
RootPaneContainer
中的 getRootPane
rootPane
屬性setRootPane(javax.swing.JRootPane)
,
RootPaneContainer.getRootPane()
protected void setRootPane(JRootPane root)
rootPane
屬性。此方法由建構子調用。
root
- 此窗體的 rootPane
物件getRootPane()
public void setIconImage(Image image)
將單個圖像指定為視窗的圖標時,可以使用此方法代替 setIconImages()
。
以下語句:
setIconImage(image);等價於:
ArrayListimageList = new ArrayList (); imageList.add(image); setIconImages(imageList);
註:根據上下文的不同(例如,視窗裝飾、視窗列表、任務欄等),本機視窗系統可以使用不同尺寸的不同圖像表示一個視窗。也可以對所有上下文使用一個圖像,或者根本不用圖像。
Frame
中的 setIconImage
image
- 要顯示的圖標圖像。Window.setIconImages(java.util.List extends java.awt.Image>)
,
Window.getIconImages()
public Container getContentPane()
contentPane
物件
RootPaneContainer
中的 getContentPane
contentPane
屬性setContentPane(java.awt.Container)
,
RootPaneContainer.getContentPane()
public void setContentPane(Container contentPane)
contentPane
屬性。此方法由建構子調用。
Swing 的繪製架構要求在包含層次結構中有不透明的 JComponent
。這通常由內容窗格提供。如果要替換內容窗格,建議用不透明的 JComponent
替換它。
RootPaneContainer
中的 setContentPane
contentPane
- 此窗體的 contentPane
物件
IllegalComponentStateException
- (運行時異常)如果 contentPane 參數為 null
getContentPane()
,
RootPaneContainer.setContentPane(java.awt.Container)
,
JRootPane
public JLayeredPane getLayeredPane()
layeredPane
物件。
RootPaneContainer
中的 getLayeredPane
layeredPane
屬性setLayeredPane(javax.swing.JLayeredPane)
,
RootPaneContainer.getLayeredPane()
public void setLayeredPane(JLayeredPane layeredPane)
layeredPane
屬性。此方法由建構子調用。
RootPaneContainer
中的 setLayeredPane
layeredPane
- 此窗體的 layeredPane
物件
IllegalComponentStateException
- (運行時異常)如果 layeredPane 參數為 null
getLayeredPane()
,
RootPaneContainer.setLayeredPane(javax.swing.JLayeredPane)
public Component getGlassPane()
glassPane
物件。
RootPaneContainer
中的 getGlassPane
glassPane
屬性setGlassPane(java.awt.Component)
,
RootPaneContainer.getGlassPane()
public void setGlassPane(Component glassPane)
glassPane
屬性。此方法由建構子調用。
RootPaneContainer
中的 setGlassPane
glassPane
- 此窗體的 glassPane
物件getGlassPane()
,
RootPaneContainer.setGlassPane(java.awt.Component)
public Graphics getGraphics()
null
。
Component
中的 getGraphics
null
Component.paint(java.awt.Graphics)
public void repaint(long time, int x, int y, int width, int height)
time
毫秒內重繪此元件的指定矩形區域。有關如何處理重繪的詳細資訊,請參閱 RepaintManager
。
Component
中的 repaint
time
- 更新前等待的最長時間(以毫秒為單位)x
- x 坐標y
- y 坐標width
- 寬度height
- 高度RepaintManager
public static void setDefaultLookAndFeelDecorated(boolean defaultLookAndFeelDecorated)
JFrame
是否應該具有當前外觀為其提供的 Window 裝飾(如邊框、關閉視窗的小部件、標題等等)的提示。如果 defaultLookAndFeelDecorated
為 true,則當前的 LookAndFeel
支持提供視窗裝飾,並且當前的視窗管理器支持未裝飾的視窗,然後新創建的 JFrame
將具有當前 LookAndFeel
為其提供的 Window 裝飾。否則,新創建的 JFrame
將具有當前視窗管理器為其提供的 Window 裝飾。
執行以下操作可在單個 JFrame 上獲得相同的效果:
JFrame frame = new JFrame(); frame.setUndecorated(true); frame.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
defaultLookAndFeelDecorated
- 指示當前的外觀是否應該提供視窗裝飾的提示LookAndFeel.getSupportsWindowDecorations()
public static boolean isDefaultLookAndFeelDecorated()
JFrame
應該由當前外觀為其提供 Window 裝飾,則返回 true。這只是一個提示,因為某些外觀可能不支持此功能。
protected String paramString()
JFrame
的字元串表示形式。此方法僅在進行除錯的時候使用,對於各個實作,所返回字元串的內容和格式可能有所不同。返回的字元串可能為空,但不可能為 null
。
Frame
中的 paramString
JFrame
的字元串表示形式public AccessibleContext getAccessibleContext()
Accessible
中的 getAccessibleContext
Frame
中的 getAccessibleContext
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。