## Cómo usar BorderLayout

Aquí hay un applet que muestra un BorderLayout en acción .

Esta es una imagen del GUI del applet, para ejecutarlo, pulsa sobre ella y el applet aparecerá en una nueva ventana del navegador."

Como muestra el applet anterior, un BorderLayout tiene cinco áreas: north, south, east, west, y center. Si agrandamos la ventana, el área central obtiene tanto espacio disponible como le sea posible. Las otras áreas se extienden sólo lo necesario para rellenar todo el espacio disponible.

El siguiente código crea el BorderLayout y los componentes que maneja. Aquí está el programa completo. El programa funciona desde dentro d eun applet, con la ayuda de AppletButton, o como una aplicación.

    Container contentPane = getContentPane();
    //Use the content pane's default BorderLayout.
    //contentPane.setLayout(new BorderLayout()); //unnecessary

    contentPane.add(new JButton("Button 1 (NORTH)"),
                    BorderLayout.NORTH);
    contentPane.add(new JButton("2 (CENTER)"),
                    BorderLayout.CENTER);
    contentPane.add(new JButton("Button 3 (WEST)"),
                    BorderLayout.WEST);
    contentPane.add(new JButton("Long-Named Button 4 (SOUTH)"),
                    BorderLayout.SOUTH);
    contentPane.add(new JButton("Button 5 (EAST)"),
                    BorderLayout.EAST);

> Importante:Cuando se añade un componente a un contenedor que usa BorderLayout, se especifica la localización específica del componente como uno de los argumentos del método add. No esperes que un componente sea añadido al centro, por defecto. Si encontramos que un componente ha desaparecido de un contenedor controlador por un BorderLayout, debemos asegurarnos de que hemos especificado la localización del componente y de que no hemos puesto otro componente en la misma localización.

Todos nuestros ejemplos que usan BorderLayout especifican el componente como el primer argumento del método add. Por ejemplo:

    add(component, BorderLayout.CENTER)  //preferimos esta forma

Sin embargo, podríamos ver el código de otros programas que especifican el componente en segundo lugar. Por ejemplo, esto sería una alternativa al código anterior:

    add(BorderLayout.CENTER, component)  //valido pero pasado de moda
        o
    add("Center", component)             //valido pero propenso a errores

Por defecto, un BorderLayout no pone espacios entre los componentes que maneja. En el applet anterior, cualquier espario aparente es el resultado del espacio extra que reserva JButton alrededor de su área. Podemos especificar los bordes (en pixels) usando el siguiente constructor:

    public BorderLayout(int horizontalGap, int verticalGap)

#### Ejemplos que usan BorderLayout

> La siguiente tabla lista algunos de los muchos ejemplos que usan BorderLayout.

> Ejemplo | Dónde se describe | Notas
> --- | --- | ---
> BorderWindow.java | Esta página | Pone un componente en cada una de las cinco posiciones.
> TabbedPaneDemo.java | Cómo usar Tabbed Panes | Uno de los muchos ejemplos que ponen un sólo componente en el centro de un panel de contenido, para que el componente sea tan grande como sea posible.
> CheckBoxDemo.java | Cómo usar Check Boxes | Crea un JPanel que usa un BorderLayout pone componenentes en las localizaciones west y center.
> ComboBoxDemo.java | Cómo usar Combo Boxes | Pone componentes en las localizaciones north y south de un panel de contenido, dejando el centro vacío.

Ozito