6.3 BORDERLAYOUT

 

Hola a todos, ¿qué tal? El layout BorderLayout distribuye los elementos por zonas, norte, sur, este… Siguiendo con la práctica del apartado anterior:

class PanelLayout extends JPanel {

     

       public PanelLayout() {

         

             setLayout(new BorderLayout());

           

             add(new JButton("Amarillo"), BorderLayout.NORTH);

           

             add(new JButton("Azul"), BorderLayout.SOUTH);

           

             add(new JButton("Rojo"), BorderLayout.WEST);

            

             add(new JButton("Verde"), BorderLayout.EAST);

       }

}

Probamos:



Por defecto, cuando utilizamos BorderLayout los componentes no tienen espacio entre sí, si queremos que lo haya se lo hemos de indicar en el constructor:

setLayout(new BorderLayout(10,10));

Probamos:



No podemos utilizar diferentes layouts en una lámina, si queremos usar varios layouts tenemos que crear una lámina para cada uno de ellos. Tal y como tenemos el código la lámina que ya tenemos creada va utilizar el layout FlowLayout y nos vamos a crear una nueva lámina que va a utilizar el layout BorderLayout, el código va a ser como sigue:

class PanelLayout extends JPanel {

   

    public PanelLayout() {

        

          setLayout(new FlowLayout(FlowLayout.CENTER));

        

          add(new JButton("Amarillo"));

        

          add(new JButton("Azul"));

        

 

    }

}

 

class PanelLayout2 extends JPanel {

  

    public PanelLayout2() {

        

          setLayout (new BorderLayout());

        

          add(new JButton("Rojo"), BorderLayout.WEST);

         

          add(new JButton("Verde"), BorderLayout.EAST);

        

          add(new JButton("Rosa"), BorderLayout.CENTER);

        

    }

}

Ahora en el constructor del marco instanciamos la segunda lámina:

public MarcoLayout() {

           

             setTitle("Práctica Layout I");

           

             setBounds(500, 300, 350, 200);

           

             PanelLayout milayout = new PanelLayout();

          

             PanelLayout2 milayout2 = new PanelLayout2();

            

             add(milayout);

            

             add(milayout2);

           

          

       }

Sin embargo, si probamos nos va a aparecer la segunda lámina:



Ya que tal y como tenemos el código lo que hace la segunda lámina es “machacar” la primera. Para que aparezcan las dos se lo indicamos por zonas:

             add(milayout, BorderLayout.NORTH);

            

             add(milayout2, BorderLayout.SOUTH);

Probamos:



Vemos que nos aparecen las dos láminas.

Con cualquier duda lo podéis hacer a través de los comentarios del blog. Hasta pronto!

6.2 SEPARACIÓN ENTRE COMPONENTES << >> 6.4GRIDLAYOUT



No hay comentarios:

Publicar un comentario