|
JavaTM 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 Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。