# Java Notes: Window Size and Position

## Pack your window to do the layout

The optimum size of a window depends on the size and layout of the components. After adding all the components to a window (JFrame), call `yourWindow.pack()` to perform the layout.

Altho very uncommon, call `yourWindow.revalidate()` to redo the layout if the size of one of the components changes. If you're doing this, perhaps you should rethink the interface design.

## Centering a Window

The following code positions a window (JFrame) f in the center of the screen. Use this when you create a window, after `yourWindow.pack()` has been called, as follows:

    window.setLocationRelativeTo(null);

## Expanding a window to fit the screen

To make a window fill the screen or take a percentage of the screen size, use something like the following.

    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    window.setSize(screenSize.width, screenSize.height);
    window.validate();                // Make sure layout is ok

## Fixed Window Size using setSize() and validate

You can set the size of a window, but it's almost always a mistake unless you're simply expanding the window to fill the screen. The default window size should depend on the size and layout of the components as determined by `pack()`. However, if you must create a fixed size window (JFrame), call `f.setSize(...)`, then call `f.validate()` to finalize the component layout before making the window visible.