|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjava.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,
RootPaneContainerprotected boolean rootPaneCheckingEnabled
add 和 setLayout 的调用转发到 contentPane。此设置初始为 false,但在构建 JFrame 时将其设置为 true。
isRootPaneCheckingEnabled(),
setRootPaneCheckingEnabled(boolean),
RootPaneContainerprotected 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 中的 processWindowEvente - 窗口事件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.exitWindow.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 - 新的 TransferHandlerTransferHandler,
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 中的 updateg - 要在其中进行绘制的 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),
RootPaneContainerprotected 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 中的 addImplcomp - 要添加子组件的组件constraints - 要遵守的约束条件index - 索引
IllegalArgumentException - 如果 index 无效
IllegalArgumentException - 如果将容器的父级添加到其本身
IllegalArgumentException - 如果向容器内添加窗口setRootPaneCheckingEnabled(boolean),
RootPaneContainerpublic void remove(Component comp)
comp 不是 rootPane,则将调用转发到 contentPane。如果 comp 不是 JFrame 或 contentPane 的子级,则不执行任何操作。
Container 中的 removecomp - 要移除的组件
NullPointerException - 如果 comp 为 nullContainer.add(java.awt.Component),
RootPaneContainerpublic void setLayout(LayoutManager manager)
LayoutManager。重写此方法,从而有条件地将调用转发到 contentPane。有关更多信息,请参阅 RootPaneContainer。
Container 中的 setLayoutmanager - LayoutManagersetRootPaneCheckingEnabled(boolean),
RootPaneContainerpublic JRootPane getRootPane()
rootPane 对象。
RootPaneContainer 中的 getRootPanerootPane 属性setRootPane(javax.swing.JRootPane),
RootPaneContainer.getRootPane()protected void setRootPane(JRootPane root)
rootPane 属性。此方法由构造方法调用。
root - 此窗体的 rootPane 对象getRootPane()public void setIconImage(Image image)
将单个图像指定为窗口的图标时,可以使用此方法代替 setIconImages()。
以下语句:
setIconImage(image);
等价于:
ArrayList imageList = new ArrayList();
imageList.add(image);
setIconImages(imageList);
注:根据上下文的不同(例如,窗口装饰、窗口列表、任务栏等),本机窗口系统可以使用不同尺寸的不同图像表示一个窗口。也可以对所有上下文使用一个图像,或者根本不用图像。
Frame 中的 setIconImageimage - 要显示的图标图像。Window.setIconImages(java.util.List extends java.awt.Image>),
Window.getIconImages()public Container getContentPane()
contentPane 对象
RootPaneContainer 中的 getContentPanecontentPane 属性setContentPane(java.awt.Container),
RootPaneContainer.getContentPane()public void setContentPane(Container contentPane)
contentPane 属性。此方法由构造方法调用。
Swing 的绘制架构要求在包含层次结构中有不透明的 JComponent。这通常由内容窗格提供。如果要替换内容窗格,建议用不透明的 JComponent 替换它。
RootPaneContainer 中的 setContentPanecontentPane - 此窗体的 contentPane 对象
IllegalComponentStateException - (运行时异常)如果 contentPane 参数为 nullgetContentPane(),
RootPaneContainer.setContentPane(java.awt.Container),
JRootPanepublic JLayeredPane getLayeredPane()
layeredPane 对象。
RootPaneContainer 中的 getLayeredPanelayeredPane 属性setLayeredPane(javax.swing.JLayeredPane),
RootPaneContainer.getLayeredPane()public void setLayeredPane(JLayeredPane layeredPane)
layeredPane 属性。此方法由构造方法调用。
RootPaneContainer 中的 setLayeredPanelayeredPane - 此窗体的 layeredPane 对象
IllegalComponentStateException - (运行时异常)如果 layeredPane 参数为 nullgetLayeredPane(),
RootPaneContainer.setLayeredPane(javax.swing.JLayeredPane)public Component getGlassPane()
glassPane 对象。
RootPaneContainer 中的 getGlassPaneglassPane 属性setGlassPane(java.awt.Component),
RootPaneContainer.getGlassPane()public void setGlassPane(Component glassPane)
glassPane 属性。此方法由构造方法调用。
RootPaneContainer 中的 setGlassPaneglassPane - 此窗体的 glassPane 对象getGlassPane(),
RootPaneContainer.setGlassPane(java.awt.Component)public Graphics getGraphics()
null。
Component 中的 getGraphicsnullComponent.paint(java.awt.Graphics)
public void repaint(long time,
int x,
int y,
int width,
int height)
time 毫秒内重绘此组件的指定矩形区域。有关如何处理重绘的详细信息,请参阅 RepaintManager。
Component 中的 repainttime - 更新前等待的最长时间(以毫秒为单位)x - x 坐标y - y 坐标width - 宽度height - 高度RepaintManagerpublic 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 中的 paramStringJFrame 的字符串表示形式public AccessibleContext getAccessibleContext()
Accessible 中的 getAccessibleContextFrame 中的 getAccessibleContext
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。