Esta vez debido a un proyecto me ha tocado meterme lo más que puedo en JAVA y la investigación empieza a dar resultados... ahora hablaremos un poco del Layout de Java: GridBagLayout.
GridBagLayout es el más complejo Layout de Java y asu vez el más potente, bueno desde mi punto de vista como programador (Desarrollador es para los grandes genios) es algo que tienes que aprender, una vez entendido las GUI son pan Comido. Empecemos a usar este Layout...
En Primera definimos nuestra GUI quizas en papel o mentalmente, la GUI que acontinuación presento solo servirá para fines demostrativos, será bastante simple pero ayudará a que entendamos como posicionar objetos con este Layout.
Esta será la GUI que construiremos y explicaremos con el fin de entender que onda con el GridBagLayout:

Identifiquemos las partes contenidas en la GUI anterior para tenerlas presentes.

Como podemos ver tenemos una etiqueta a la cual le agregamos una imagen, seis botones de la libreria SWING de JAVA y por ultimo una segunda etiqueta.
Ahora debemos imaginar una cuadricula que separe cada uno de los componentes para situarlos dentro del Layout, bueno no la imagenemos para eso esta la siguiente imagen:

Como han podido ver, el componente Label que despliega la imagen ocupa tres celdas, como tambien lo hace el segundo Label al pie de la ventana.
Bueno ya se que lo quieren es empezar a revisar el codigo bien empezaremos construyendo una pequeña función que cuando la llamemos dibuje la interfaz de nuestro programilla. más o menos tendremos la estructura siguiente:
Como siempre JAVA necesita que construyamos los objetos que vamos a utilizar, asi que procederemos a construir los seis botones, las dos etiquetas y el layout con sus respectivas constraints, dentro de la función ShowGUI:
Bien, hasta el momento hemos construido todos nuestros objetos, hemos asignado la Layout al JFrame; estamos listos para agregar los componentes a nuestro Layout, vamos a iniciar asignando el primer boton b1:
De la forma anterior agregaremos todos los botones, lo importante es aprender para que sirven los parametros que se han establecido antes de poner el botón.
gridwidth es el ancho en celdas que ocupará el componente, ya una vez que tengamos definidas las celdas de nuestro Layout, con este metodo definimos el ancho del componente.
weightx es el aspecto que debe mantener el objeto con respecto a la columna en la que se encuentra. los rangos van de 0.0 a 1.0. Son usados para mantener el ancho de la cosulta de tamaño adecuado.
weighty lo mismo que el comando anterior pero en vez de extenderse en la columna se exiende en filas.
gridx y gridy hacen referecia a la celda en la que se colocará el componente.

Siguiendo con la imagen; la primera fila de botones gridy es igual 1, la segunda fila de botones gridy es igual a 2 y para el Laber final gridy es igual a 3
Bien después de agregar los seis botones nuestro codigo se debe ver asi:
Sencillo ¿no?, pues ahi tienes un excelente Layout para hacer sus GUI's en JAVA, esta aplicación corre excelente como aplicación de Windows, solo falta meterla a un JAR y listo, pero bueno seguiremos hablando de JAVA y algunas cositas, por el momento ya tenemos el inicio de una buena aplicación.
Como Usar GridBagLayout - The Java Tutorials by SUN
Creando una GUI con JFC/Swing - The Java Tutorials by SUN
¿Te ha gustado este artÃculo? Subscribete vÃa Email, para ¡recibirlos en tu correo!
WP Cumulus Flash tag cloud by Roy Tanck requires Flash Player 9 or better.
jajajaja los layouts de java ohhh …….. bueno algo que no mucha gente sabe es que hay un layout NULO en el cual tu posicionas los elementos con coordenadas X y Y, muy util cuando son aplicaciones fullscreen, porque los elementos no se redimensionan con la ventana, pero igual, buen articulo man! ^^
Usando
JFrame principal = new JFrame(”Demo - GridBagLayout”
;
int inset = 350;
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
principal.setBounds(inset, inset,
screenSize.width - inset * 2,screenSize.height - inset * 2);
principal.setSize(700, 400);
//principal.setVisible(true);
/Code …/
Usando
rodrigo salado anaya excelente, buen tip
Usando