gestores de distribución

seven
25 de Junio del 2002
Estoy utilizando un borderlayout, en cada una de sus partes utilizo otro gestor o ninguno, el caso es que cuando hago la ventana más grandes, los componentes como cajas de texto y demas se agranden tambien, como puedo hacerlo.

gracias

Luismahou
25 de Junio del 2002
Los layout puede hacernos la vida más fácil cuando queremos hacer un GUI, pero sin un conocimiento básico de ellos podemos volvernos locos. Hay un montón de layouts distintos, y dependiendo de tus necesidades tienes que usar unos u otros. Cada uno ajusta los componentes basándose en parámetros distintos (unos según el preferredSize, otros según el maximum o minimumSize, o según el size). Por ello te recomiendo que te mires algunos básicos y seguro que al final eres capaz de resolver tu problema. Los más útiles desde mi punto de vista son:
- BorderLayout, que ajusta los componentes en cinco posiciones distintas (norte, sur, este, oeste y centro). El componente del centro se expande según el tamaño del contenedor que tenga el layout.
- GridLayout: coloca los componentes según una rejilla que se establece en su constructor. Por ejemplo con new GridLayout(2, 3) si añadieramos 6 componentes se distribuirían en dos filas y tres columnas, y todos con el mismo tamaño.
- BoxLayout: Este layout coloca los elementos según su preferredSize y una orientación que se pone en su constructor (vertical u horizontal).
- FlowLayout: Es el layout más simple coloca los elementos unos detrás de otros, dependiendo de un parámetro que puedes pasarle en el constructor. Este parámetro hace que los componentes se centren, se coloquen de izquierda a derechas o al revés, etc.
- GridBagLayout: Este es el más complicado con diferencia. Técnicamente te permite hacer todo. Ya que con el te puedes definir una rejilla y colocar los componentes en ella. Pero es un poco complicado...

Yo te recomiendo que cuando quieras crear un interfaz partas de layout simples (borderlayout, gridlayout y flowlayout), y muchos paneles. Con esto quiero decir que, si quieres distribuir 10 componentes en un panel no intentes utilizar sólo un layout y un panel contenedor, sino crearte por ejemplo 3 paneles y meter 3 componentes en un panel, 3 en otro y 4 en otro, y luego esos tres paneles meterlos dentro del contenedor principal.

Luismahou