Es un mecanismo de Java para organizar los elementos que queremos mostrar en la pantalla, ya sea en una ventana o en un panel.
Un panel es un área determinada que puede contener elementos, dependiendo del layout utilizado el panel puede tener un tamaño en pixeles o ajustarse a la ventana, en el caso de borderLayout si los elementos que se agregan son paneles estos se ajustarán de la siguiente forma:
- El panel que quede al norte o al sur, solo se le podrá dar un alto en pixeles y el ancho será el que tenga la ventana.
- Los paneles que queden al oeste y al este, solo se les podrá dar un ancho en pixeles y el alto será el sobrante que reste en la venta si tiene paneles al norte o sur con altura determinada.
- El panel central será de las dimensiones sobrantes cuando hay paneles al norte o sur y al oeste y este.
Por ejemplo en la siguiente imagen:
Es una ventana conformada por 5 paneles, el gris al norte, el naranja al sur, el rojo al oeste, el azul al este y el blanco al centro.
- El panel gris tiene una altura de 150 pixeles y su ancho por default es el mismo que la ventana.
- El panel naranja tiene una altura de 150 pixeles y su ancho es el mismo que el de la ventana.
- Los paneles centrales tienen una altura por default que es el sobrante que dejan los paneles norte (gris) y sur (naranja) respecto al alto de la ventana.
- Los paneles rojo y azul tienen un ancho de 200 pixeles.
- Y el panel blanco tiene un ancho y alto por default que viene siendo el espacio sobrante que dejan los demás paneles.
■ Estructura
Para poder organizar los elementos en la pantalla mediante borderLayout primero se le debe indicar a la ventana o al panel contenedor que el mecanismo de organización sera borderLayout, esto es de la siguiente forma:
<ventana o panel>.setLayout(new BorderLayout);
Hecho esto solo basta indicar en qué punto se situará el elemento al agregarlo a dicho contenedor, ya sea la propia ventana o un panel, esto es así:
<ventana o panel>.add(elemento, BorderLayout.<ZONA>);
Donde:
"elemento" es el componente que se va agregar.
"ZONA" es el punto de borderLayout en el que se situará dicho elemento, los puntos pueden ser: NORTH, CENTER, SOUTH, WEST o EAST.
■ Código
El código de la imagen superior es el siguiente:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Panel extends JPanel {
public Panel(Color _color) {
setBackground(_color);
setPreferredSize(new Dimension(200, 150));
}
}
class Ventana extends JFrame {
// Se crean los paneles a partir de la clase Panel
Panel panelNorte = new Panel(Color.GRAY);
Panel panelOeste = new Panel(Color.RED);
Panel panelCentro = new Panel(Color.WHITE);
Panel panelEste = new Panel(Color.BLUE);
Panel panelSur = new Panel(Color.ORANGE);
public Ventana() {
this.setSize(800, 600);
this.setTitle("Ventana en Java");
this.setLocationRelativeTo(null);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Se le indica a la ventana que se usará BorderLayout
this.setLayout(new BorderLayout());
// Se agregan los paneles en cada una de las zonas
this.add(panelNorte, BorderLayout.NORTH);
this.add(panelOeste, BorderLayout.WEST);
this.add(panelCentro, BorderLayout.CENTER);
this.add(panelEste, BorderLayout.EAST);
this.add(panelSur, BorderLayout.SOUTH);
}
}
public class Main {
public static void main (String args[]) {
// Se crea la ventana
Ventana ventana = new Ventana();
// Se muestra en pantalla
ventana.setVisible(true);
}
}
■ Explicación
La clase "Panel" hereda de JPanel y que hace es crear un panel con el color y dimensiones dadas, cada que se crea un objeto de esta clase se crea un panel diferente.
La clase "Ventana" hereda de JFrame y es la encargada de crear la ventana con los parámetros dados (dimensiones, título, etc.); en la misma clase se crean los paneles mostrados usando la clase "Panel".
En el método constructor de ventana se agregan los paneles uno por uno indicando la zona en la que se localizarán.
En la clase principal se crea un objeto de "Ventana" y se muestra.
No hay comentarios:
Publicar un comentario