sábado, 23 de mayo de 2009

Hablemos de Java [MigLayout!]

Ahora que alguna profesora me dejo hacer un programa en java con base de datos que no fuera web, pensé en hacerlo con Swing para aplicaciones de escritorio y la verdad me dio mucha flojera ya que a mi como me enseñaron es anidado los layouts(clases que definen como ordenar y repartir los componentes como los botones) oficiales de Swing y AWT como  el BorderLayout, FlowLayout, GridLayout, BoxLayout, etc vease mas en el manual oficial de sun...
Me puse a navegar por internet y encontre nadamas y nadamenos que un layout no oficial muy poderoso pero sencillo, con el cual se pueden hacer interfaces complejas de una manera muy sencilla
se puede descargar de aqui
y basta con agregar el .jar a las librerias del proyecto(en propiedades del proyecto, en netbeans):
y podremos empezar a utilizarlo, conciste en una grilla en la cual vamos a agregar elemento por elemento, un ejemplo muy sencillo:
el codigo para acomodar los botones es bastante sencillo gracias a este layout:
this.add(new JButton("boton1"));
this.add(new JButton("boton2"));
this.add(new JButton("boton3"));
this.add(new JButton("boton4"), "wrap");
this.add(new JButton("boton5"));
this.add(new JButton("boton6"));
this.add(new JButton("boton7"));
this.add(new JButton("boton8"));
donde en el boton4 ponemos un parametro "wrap" que nos sirve para dar el salto de linea en la grilla, obviamente podemos unir celdas, hacerlas mas grandes, hacer que un elemento ocupe x celdas hacia arriba o hacia abajo como lo hace GridBagLayout(que es el mas completo y complejo de los layouts oficiales) solo cambiando y utilizando varios parametros como el "wrap"; con esto podemos hacer interfaces mas complejas que llevarias varios layouts anidados, solo usando uno:
 
dejo el manual oficial de miglayout:

1 comentario:

Alex dijo...

Imprescindible sin duda. Esperemos que "venga de serie" en el próximo JDK.

Hooks en React (I), Utilizar el estado en componentes Stateless.

¿Qué son los Hooks? Los hooks son una nueva característica agregada a React (16.8), la cual consiste en un conjunto de funciones que nos p...