Module  java.desktop
软件包  javax.swing

Class JFrame

  • All Implemented Interfaces:
    ImageObserverMenuContainerSerializableAccessibleRootPaneContainerWindowConstants


    @JavaBean(defaultProperty="JMenuBar",
              description="A toplevel window which can be minimized to an icon.")
    public class JFrame
    extends Frame
    implements WindowConstants, Accessible, RootPaneContainer
    扩展版本的java.awt.Frame ,增加了对JFC / Swing组件架构的支持。 你可以找到关于使用面向任务的文档JFrame的Java教程 ,在节How to Make Frames

    JFrame类与Frame略有不兼容。 像所有其他JFC / Swing顶级容器一样, JFrame包含一个JRootPane作为其唯一的孩子。 窗格提供的内容窗格通常应包含JFrame显示的所有非菜单组件。 这与AWT Frame情况不同。 为方便起见, add removesetLayout方法被覆盖,以便它们将调用委托给ContentPane的相应方法。 例如,您可以将子组件添加到框架中,如下所示:

      frame.add(child); 
    而孩子将被添加到contentPane。 内容窗格将始终为非空。 尝试将其设置为null将导致JFrame引发异常。 默认内容窗格中将设置一个BorderLayout管理器。 有关添加,删除和设置LayoutManagerLayoutManager的详细信息,请参阅JFrame

    Frame不同, JFrame有一些概念,当用户尝试关闭窗口时,如何响应。 默认行为是在用户关闭窗口时简单地隐藏JFrame。 要更改默认行为,您调用方法setDefaultCloseOperation(int) 要使JFrame行为与Frame实例相同,请使用setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE)

    有关根窗格提供的内容窗格和其他功能的更多信息,请参阅Java教程中的 Using Top-Level Containers

    在多屏幕环境中,您可以在不同的屏幕设备上创建一个JFrame 有关详细信息,请参阅Frame

    警告: Swing不是线程安全的。 有关详细信息,请参阅Swing's Threading Policy

    警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,支持所有JavaBeans的长期存储已被添加到java.beans包中。 请参阅XMLEncoder

    从以下版本开始:
    1.2
    另请参见:
    JRootPanesetDefaultCloseOperation(int)WindowListener.windowClosing(java.awt.event.WindowEvent)RootPaneContainerSerialized Form