8.3.3 Disposición libre

 

¿Qué tal? Seguimos con las disposiciones. Las disposiciones que hemos visto hasta ahora nos marcan donde tenemos que colocar los componentes, botones, campos de texto, etiquetas, etc., en cambio, una disposición libre nos permite colocar los componentes donde nosotros queramos dentro de un contenedor.

Para ver el uso de las disposiciones libres mejor con una práctica como siempre, el código inicial de nuestra práctica va a ser el siguiente:

package graficas;

 

import javax.swing.JFrame;

import javax.swing.JPanel;

 

public class DisposicionLibre {

 

      public static void main(String[] args) {

            MarcoLibre mimarco = new MarcoLibre();

 

       

 

        mimarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 

      

 

      

 

 

 

  }

 

 

 

}

 

class MarcoLibre extends JFrame {

 

 

 

  public MarcoLibre(){

 

      

 

        setTitle("Disposición libre");

 

      

 

        setBounds(450, 350, 600, 400);

 

      

 

        setVisible(true);

 

      

 

        LaminaLibre milamina = new LaminaLibre();

 

      

 

        add(milamina);

 

 

 

  }

 

}

 

class LaminaLibre extends JPanel{

 

  

 

   public LaminaLibre() {

 

        

 

 

 

   }

 

}

Tenemos que colocarnos dentro del constructor de la lámina indicarle que vamos a trabajar con disposiciones libres y esto se hace con el método setLayout() indicándole como parámetro null:

   public LaminaLibre() {

 

         setLayout(null);

 

   }

Luego vamos a crearnos un botón:

   public LaminaLibre() {

 

         setLayout(null);

        

         JButton boton1 = new JButton("Botón 1");

 

   }

A continuación hemos de indicarle en qué posición queremos que aparezca el botón utilizaríamos el método setBounds() que le pasamos cuatro parámetro, x, y, el ancho y alto del botón. Aquí nos tocaría jugar con las coordenadas x e y. Tras el método setBounds() añadir el botón a la lámina:

   public LaminaLibre() {

 

         setLayout(null);

        

         JButton boton1 = new JButton("Botón 1");

        

       boton1.setBounds(500, 300, 120, 25);

      

       add(boton1);

 

   }

Si probamos:



Nos coloca el botón en la parte inferior de la ventana. Vamos a crear otro botón y añadirlo a la lámina:

   public LaminaLibre() {

 

         setLayout(null);

        

         JButton boton1 = new JButton("Botón 1");

        

         JButton boton2 = new JButton("Botón 2");

        

       boton1.setBounds(500, 300, 120, 25);

      

       boton2.setBounds(200, 100, 120, 25);

      

       add(boton1);

      

       add(boton2);

 

   }

Probamos de nuevo:



Y nos coloca los botones tal y como le hemos dicho en el método setBounds, tendríamos que jugar con las coordenadas x e y para que los botones nos lo alineara de forma correcta y ordenada.

El inconveniente de este tipo de disposiciones es que hay que jugar con las coordenadas constantemente y cuando hay más elementos, pues la cosa se complica, además de estar utilizando constantemente el método setBounds, al final sería un código largo y luego encima en tu monitor los ves los componentes bien organizados y uniformes pero a lo mejor en otro equipo los elementos se ven de forma desordenada, amontonados porque la resolución del monitor no es el mismo.

Para evitar estos problemas hay una solución y es crearnos nuestras propias disposiciones libres que lo veremos en el próximo post. Hasta pronto!

8.3.2 Disposición en muelle << >> 8.3.4Creación de una disposición libre



No hay comentarios:

Publicar un comentario