Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Swing 1.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.swing
Class JFrame

    java.lang.Object
      |
      +--java.awt.Component
            |
            +--java.awt.Container
                  |
                  +--java.awt.Window
                        |
                        +--java.awt.Frame
                              |
                              +--javax.swing.JFrame

public class JFrame
extends java.awt.Frame
implements WindowConstants, Accessible, RootPaneContainer

An extended version of java.awt.Frame that adds support for interposing input and painting behavior in front of the frame's children (see glassPane), support for special children that are managed by a LayeredPane (see rootPane) and for Swing MenuBars.

The JFrame class is slightly incompatible with java.awt.Frame. JFrame contains a JRootPane as it's only child. The contentPane should be the parent of any children of the JFrame. This is different than java.awt.Frame, e.g. to add a child to an AWT Frame you'd write:

           frame.add(child);

However using JFrame you need to add the child to the JFrames contentPane instead:

           frame.getContentPane().add(child);

The same is true for setting LayoutManagers, removing components, listing children, etc. All these methods should normally be sent to the contentPane() instead of the JFrame itself. The contentPane() will always be non-null. Attempting to set it to null will cause the JFrame to throw an exception. The default contentPane() will have a BorderLayout manager set on it.

Please see the JRootPane documentation for a complete description of the contentPane, glassPane, and layeredPane properties.

Unlike its parent class, java.awt.Frame, you can tell a JFrame how to respond when the user attempts to close the window. The default behavior is to simply hide the JFrame when the user closes the window. To change the default behavior, you invoke the method `setDefaultCloseOperation`. To make the JFrame remain open unless you handle the window-closing event and explicitly invoke `dispose()` (or exit the app, which is also pretty effective), use `setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE)`. That makes the JFrame behave the same as java.awt.Frame. A third option lets you completely dispose of the window when it closes, instead of merely hiding it.

For the keyboard keys used by this component in the standard Look and Feel (L&F) renditions, see the JFrame key assignments.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. A future release of Swing will provide support for long term persistence.

See Also:
  `JRootPane`, `setDefaultCloseOperation(int)`, `WindowListener.windowClosing(java.awt.event.WindowEvent)`, Serialized Form

Inner Class Summary
`protected class` | `JFrame.AccessibleJFrame` The class used to obtain the AccessibleRole for this object.

Field Summary
`protected AccessibleContext` | `accessibleContext` The accessible context property
`protected JRootPane` | `rootPane` The JRootPane instance that manages the `contentPane` and optional `menuBar` for this frame, as well as the `glassPane`.
`protected boolean` | `rootPaneCheckingEnabled` If true then calls to `add` and `setLayout` cause an exception to be thrown.

Fields inherited from class java.awt.Frame
`CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR`

Fields inherited from class java.awt.Component
`BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

Constructor Summary
`JFrame()` Constructs a new Frame that is initially invisible.
`JFrame(java.lang.String title)` Constructs a new, initially invisible Frame with the specified title.

Method Summary
`protected void` | `addImpl(java.awt.Component comp, java.lang.Object constraints, int index)` By default, children may not be added directly to a this component, they must be added to its contentPane instead.
`protected JRootPane` | `createRootPane()` Called by the constructor methods to create the default rootPane.
`protected void` | `frameInit()` Called by the constructors to init the JFrame properly.
`AccessibleContext` | `getAccessibleContext()` Get the AccessibleContext associated with this JFrame
`java.awt.Container` | `getContentPane()` Returns the contentPane object for this frame.
`int` | `getDefaultCloseOperation()` Returns the operation which occurs when the user initiates a "close" on this frame.
`java.awt.Component` | `getGlassPane()` Returns the glassPane object for this frame.
`JMenuBar` | `getJMenuBar()` Returns the menubar set on this frame.
`JLayeredPane` | `getLayeredPane()` Returns the layeredPane object for this frame.
`JRootPane` | `getRootPane()` Returns the rootPane object for this frame.
`protected boolean` | `isRootPaneCheckingEnabled()` Returns whether calls to `add` and `setLayout` cause an exception to be thrown.
`protected java.lang.String` | `paramString()` Returns a string representation of this JFrame.
`protected void` | `processKeyEvent(java.awt.event.KeyEvent e)` Processes key events occurring on this component and, if appropriate, passes them on to components in the frame which have registered interest in them.
`protected void` | `processWindowEvent(java.awt.event.WindowEvent e)` Processes window events occurring on this component.
`void` | `setContentPane(java.awt.Container contentPane)` Sets the contentPane property.
`void` | `setDefaultCloseOperation(int operation)` Sets the operation which will happen by default when the user initiates a "close" on this frame.
`void` | `setGlassPane(java.awt.Component glassPane)` Sets the glassPane property.
`void` | `setJMenuBar(JMenuBar menubar)` Sets the menubar for this frame.
`void` | `setLayeredPane(JLayeredPane layeredPane)` Sets the layeredPane property.
`void` | `setLayout(java.awt.LayoutManager manager)` By default the layout of this component may not be set, the layout of its contentPane should be set instead.
`protected void` | `setRootPane(JRootPane root)` Sets the rootPane property.
`protected void` | `setRootPaneCheckingEnabled(boolean enabled)` Determines whether calls to `add` and `setLayout` cause an exception to be thrown.
`void` | `update(java.awt.Graphics g)` Just calls `paint(g)`.

Methods inherited from class java.awt.Frame
`addNotify, dispose, getCursorType, getIconImage, getMenuBar, getTitle, isResizable, remove, setCursor, setIconImage, setMenuBar, setResizable, setTitle`

Methods inherited from class java.awt.Window
`addWindowListener, getFocusOwner, getLocale, getToolkit, getWarningString, isShowing, pack, postEvent, processEvent, removeWindowListener, show, toBack, toFront`

Methods inherited from class java.awt.Container
`add, add, add, add, add, addContainerListener, countComponents, deliverEvent, doLayout, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, remove, removeAll, removeContainerListener, removeNotify, validate, validateTree`

Methods inherited from class java.awt.Component
`action, add, addComponentListener, addFocusListener, addKeyListener, addMouseListener, addMouseMotionListener, bounds, checkImage, checkImage, contains, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, getBackground, getBounds, getColorModel, getCursor, getFont, getFontMetrics, getForeground, getGraphics, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getTreeLock, gotFocus, handleEvent, hide, imageUpdate, inside, isEnabled, isFocusTraversable, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processMouseEvent, processMouseMotionEvent, removeComponentListener, removeFocusListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBackground, setBounds, setBounds, setCursor, setEnabled, setFont, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### rootPane

    protected JRootPane rootPane

  The JRootPane instance that manages the `contentPane` and optional `menuBar` for this frame, as well as the `glassPane`.
  See Also:
    `JRootPane`, `RootPaneContainer`

### rootPaneCheckingEnabled

    protected boolean rootPaneCheckingEnabled

  If true then calls to `add` and `setLayout` cause an exception to be thrown.
  See Also:
    `isRootPaneCheckingEnabled()`, `setRootPaneCheckingEnabled(boolean)`

### accessibleContext

    protected AccessibleContext accessibleContext

  The accessible context property

Constructor Detail

### JFrame

    public JFrame()

  Constructs a new Frame that is initially invisible.
  See Also:
    `Component.setSize(int, int)`, `Component.setVisible(boolean)`

### JFrame

    public JFrame(java.lang.String title)

  Constructs a new, initially invisible Frame with the specified title.
  Parameters:
    `title` - the title for the frame
  See Also:
    `Component.setSize(int, int)`, `Component.setVisible(boolean)`

Method Detail

### frameInit

    protected void frameInit()

  Called by the constructors to init the JFrame properly.

### createRootPane

    protected JRootPane createRootPane()

  Called by the constructor methods to create the default rootPane.

### processKeyEvent

    protected void processKeyEvent(java.awt.event.KeyEvent e)

  Processes key events occurring on this component and, if appropriate, passes them on to components in the frame which have registered interest in them.
  Parameters:
    `e` - the key event
  Overrides:
    processKeyEvent in class java.awt.Component
  See Also:
    `Component.processKeyEvent(java.awt.event.KeyEvent)`

### processWindowEvent

    protected void processWindowEvent(java.awt.event.WindowEvent e)

  Processes window events occurring on this component. Hides the window or disposes of it, as specified by the setting of the `defaultCloseOperation` property.
  Parameters:
    `e` - the window event
  Overrides:
    processWindowEvent in class java.awt.Window
  See Also:
    `setDefaultCloseOperation(int)`, `Window.processWindowEvent(java.awt.event.WindowEvent)`

### setDefaultCloseOperation

    public void setDefaultCloseOperation(int operation)

  Sets the operation which will happen by default when the user initiates a "close" on this frame. The possible choices are defined in the `WindowConstants` interface:

  - DO_NOTHING_ON_CLOSE - do not do anything - require the program to handle the operation in the windowClosing method of a registered WindowListener object.
  - HIDE_ON_CLOSE - automatically hide the frame after invoking any registered WindowListener objects
  - DISPOSE_ON_CLOSE - automatically hide and dispose the frame after invoking any registered WindowListener objects

  The value is set to HIDE_ON_CLOSE by default.

  See Also:
    `Window.addWindowListener(java.awt.event.WindowListener)`, `getDefaultCloseOperation()`

### getDefaultCloseOperation

    public int getDefaultCloseOperation()

  Returns the operation which occurs when the user initiates a "close" on this frame.
  Returns:
    an int indicating the window-close operation
  See Also:
    `setDefaultCloseOperation(int)`

### update

    public void update(java.awt.Graphics g)

  Just calls `paint(g)`. This method was overridden to prevent an unneccessary call to clear the background.
  Parameters:
    `g` - the Graphics context in which to paint
  Overrides:
    update in class java.awt.Container

### setJMenuBar

    public void setJMenuBar(JMenuBar menubar)

  Sets the menubar for this frame.
  Parameters:
    `menubar` - the menubar being placed in the frame
  See Also:
    `getJMenuBar()`

### getJMenuBar

    public JMenuBar getJMenuBar()

  Returns the menubar set on this frame.
  See Also:
    `setJMenuBar(javax.swing.JMenuBar)`

### isRootPaneCheckingEnabled

    protected boolean isRootPaneCheckingEnabled()

  Returns whether calls to `add` and `setLayout` cause an exception to be thrown.
  Returns:
    true if `add` and `setLayout` are checked
  See Also:
    `addImpl(java.awt.Component, java.lang.Object, int)`, `setLayout(java.awt.LayoutManager)`, `setRootPaneCheckingEnabled(boolean)`

### setRootPaneCheckingEnabled

    protected void setRootPaneCheckingEnabled(boolean enabled)

  Determines whether calls to `add` and `setLayout` cause an exception to be thrown.
  Parameters:
    `enabled` - a boolean value, true if checking is to be enabled, which cause the exceptions to be thrown
  See Also:
    `addImpl(java.awt.Component, java.lang.Object, int)`, `setLayout(java.awt.LayoutManager)`, `isRootPaneCheckingEnabled()`

### addImpl

    protected void addImpl(java.awt.Component comp,
                           java.lang.Object constraints,
                           int index)

  By default, children may not be added directly to a this component, they must be added to its contentPane instead. For example:

       thisComponent.getContentPane().add(child)

  An attempt to add to directly to this component will cause an runtime exception to be thrown. Subclasses can disable this behavior.
  Throws:
    Error - if called with rootPaneChecking true
  Overrides:
    addImpl in class java.awt.Container
  See Also:
    `setRootPaneCheckingEnabled(boolean)`

### setLayout

    public void setLayout(java.awt.LayoutManager manager)

  By default the layout of this component may not be set, the layout of its contentPane should be set instead. For example:

       thiComponent.getContentPane().setLayout(new BorderLayout())

  An attempt to set the layout of this component will cause an runtime exception to be thrown. Subclasses can disable this behavior.
  Throws:
    Error - if called with rootPaneChecking true
  Overrides:
    setLayout in class java.awt.Container
  See Also:
    `setRootPaneCheckingEnabled(boolean)`

### getRootPane

    public JRootPane getRootPane()

  Returns the rootPane object for this frame.
  Specified by:
    getRootPane in interface RootPaneContainer
  See Also:
    `setRootPane(javax.swing.JRootPane)`, `RootPaneContainer.getRootPane()`

### setRootPane

    protected void setRootPane(JRootPane root)

  Sets the rootPane property. This method is called by the constructor.
  Parameters:
    `root` - the rootPane object for this frame
  See Also:
    `getRootPane()`

### getContentPane

    public java.awt.Container getContentPane()

  Returns the contentPane object for this frame.
  Specified by:
    getContentPane in interface RootPaneContainer
  See Also:
    `setContentPane(java.awt.Container)`, `RootPaneContainer.getContentPane()`

### setContentPane

    public void setContentPane(java.awt.Container contentPane)

  Sets the contentPane property. This method is called by the constructor.
  Specified by:
    setContentPane in interface RootPaneContainer
  Parameters:
    `contentPane` - the contentPane object for this frame
  Throws:
    java.awt.IllegalComponentStateException - (a runtime exception) if the content pane parameter is null
  See Also:
    `getContentPane()`, `RootPaneContainer.setContentPane(java.awt.Container)`

### getLayeredPane

    public JLayeredPane getLayeredPane()

  Returns the layeredPane object for this frame.
  Specified by:
    getLayeredPane in interface RootPaneContainer
  See Also:
    `setLayeredPane(javax.swing.JLayeredPane)`, `RootPaneContainer.getLayeredPane()`

### setLayeredPane

    public void setLayeredPane(JLayeredPane layeredPane)

  Sets the layeredPane property. This method is called by the constructor.
  Specified by:
    setLayeredPane in interface RootPaneContainer
  Parameters:
    `layeredPane` - the layeredPane object for this frame
  Throws:
    java.awt.IllegalComponentStateException - (a runtime exception) if the layered pane parameter is null
  See Also:
    `getLayeredPane()`, `RootPaneContainer.setLayeredPane(javax.swing.JLayeredPane)`

### getGlassPane

    public java.awt.Component getGlassPane()

  Returns the glassPane object for this frame.
  Specified by:
    getGlassPane in interface RootPaneContainer
  See Also:
    `setGlassPane(java.awt.Component)`, `RootPaneContainer.getGlassPane()`

### setGlassPane

    public void setGlassPane(java.awt.Component glassPane)

  Sets the glassPane property. This method is called by the constructor.
  Specified by:
    setGlassPane in interface RootPaneContainer
  Parameters:
    `glassPane` - the glassPane object for this frame
  See Also:
    `getGlassPane()`, `RootPaneContainer.setGlassPane(java.awt.Component)`

### paramString

    protected java.lang.String paramString()

  Returns a string representation of this JFrame. This method is intended to be used only for debugging purposes, and the content and format of the returned string may vary between implementations. The returned string may be empty but may not be `null`.

  Overriding paramString() to provide information about the specific new aspects of the JFC components.

  Returns:
    a string representation of this JFrame.
  Overrides:
    paramString in class java.awt.Frame

### getAccessibleContext

    public AccessibleContext getAccessibleContext()

  Get the AccessibleContext associated with this JFrame
  Specified by:
    getAccessibleContext in interface Accessible
  Returns:
    the AccessibleContext of this JFrame

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Swing 1.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.