|
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,
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;否则返回 false
addImpl(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 为 null
Container.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);
等价于:
ArrayList
imageList = new ArrayList
();
imageList.add(image);
setIconImages(imageList);
注:根据上下文的不同(例如,窗口装饰、窗口列表、任务栏等),本机窗口系统可以使用不同尺寸的不同图像表示一个窗口。也可以对所有上下文使用一个图像,或者根本不用图像。
Frame 中的
setIconImage
image - 要显示的图标图像。
Window.setIconImages(java.util.List
),
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. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。