¿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