Es por ello que debemos buscar algunas alternativas que nos permitan solventar el problema sin tener que añadir complejidad al proceso de desarrollo del programa o aplicación, teniendo esto en mente podemos entonces utilizar el panel como sub-contenedor en Java , con ello podremos ir dividiendo cada sección dentro de nuestra interfaz y así lograr el resultado gráfico deseado.
Utilizando el panel como sub-contenedor
Para esto debemos dividir una ventana en paneles, de esta forma podemos organizar un panel como grillas y dejar otro sin divisiones, de la misma forma en la que dividiríamos una hoja en blanco trazando líneas sobre ella.
Para poder lograr esto debemos utilizar la clase JPanel de la librería swing de Java y con el método add() podemos agregar los diferentes elementos.
Ejemplo práctico
Vamos a construir un ejemplo sencillo, tendremos dos paneles, el primero contendrá un grid de 4x3 y el siguiente contendrá un texto y contendrá también a nuestro primer panel, con ello podremos tener una disposición diferente.
Veamos el siguiente código donde construimos la disposición de un horno de microondas, tenemos el espacio de la bandeja de la comida y al lado derecho tendremos los botones que utilizaremos para operarlo:
import java.awt.*; import javax.swing.*; public class Microondas extends JFrame { public Microondas() { JPanel p1 = new JPanel(); p1.setLayout(new GridLayout(4, 3)); for (int i = 1; i <= 9; i++) { p1.add (new JButton("" + i)); } p1.add(new JButton("" + 0)); p1.add(new JButton("Inicio")); p1.add(new JButton("Detener")); JPanel p2 = new JPanel(new BorderLayout()); p2.add (new JTextField("El tiempo se muestra aqui"), BorderLayout.NORTH); p2.add (p1, BorderLayout.CENTER); add(p2, BorderLayout.EAST); add(new JButton("Aqui va la bandeja de la comida"), BorderLayout.CENTER); } public static void main(String[] args) { Microondas frame = new Microondas(); frame.setTitle("El horno de microondas"); frame.setSize(400, 250); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
Podemos ver como p1 será nuestro primer panel, el cual contendrá el grid ya mencionado anteriormente, para construir los botones hacemos un ciclo for y con el método add() los vamos agregando al contenedor.
Luego creamos nuestro segundo panel contenedor, que llamamos p2, el cual contendrá inicialmente un texto y luego le añadimos el panel p1, finalmente en el método main() hacemos el llamado a nuestra interfaz. Si todo ha salido de forma correcta podremos ver un resultado como el siguiente:
Ya con esto hemos creado un horno de microondas, por supuesto si queremos que funcione habrá que hacer la programación de los botones, pero eso es otra historia. Notamos como hemos podido organizar de una forma sencilla y práctica el contenido, con esta base podemos seguir experimentando para lograr divisiones cada vez más complejas o ajustadas a nuestros requerimientos si así lo deseamos.
Finalizando este tutorial hemos aprendido como podemos utilizar el componente JPanel de Java para generar sub-contenedores y así organizar nuestras interfaces de usuario.