¿Cómo harías para obtener una interfaz gráfica de usuario de aspecto decente cuando no sabes cuántos componentes tendrás y qué tan grandes serán?Diseño variable en Swing
Un usuario, por ejemplo, ingresa la cantidad de campos de texto que desea y cuáles de esos campos de texto se agrupan en paneles delimitados y el programa genera esto.
He estado usando GridLayout, pero el problema es que hace que todas las celdas tengan el mismo ancho y alto, lo cual está bien cuando todos los componentes tienen el mismo tamaño, pero cuando yo, por ejemplo, tengo un campo de texto y panel bordeado con campos múltiples, ya sea que el campo de texto se estira o el panel se aprieta.
Me gustaría que todos los componentes tengan su tamaño mínimo, pero aún así, usted sabe, utilizable.
Example of how it is now, using GridLayout, todos los campos son normales, JTextFields de una sola línea donde el panel titulado fecha está totalmente comprimido (tiene tres campos) y los campos de primer nivel son demasiado grandes. Alguien tiene punteros?
El único problema que tengo ahora es que cuando las etiquetas en una caja son diferentes, las cajas de texto tienen un tamaño diferente, por ejemplo, http://grab.by/5gpW. ¿Hay alguna manera de arreglar esto sin escribir mi propio LayoutManager? – thepandaatemyface
@thepandaatemyface: actualicé el ejemplo para mostrar un enfoque. – trashgod
@mKorbel usa _mot juste_: establecer el tamaño preferido de la etiqueta es un truco arbitrario. Un enfoque más preciso podría encontrar la etiqueta más larga usando una de las técnicas discutidas [aquí] (http://stackoverflow.com/questions/5979795/how-to-calculate-the-number-of-rows-and-columns-in -each-row-a-text-takes-in-aj/5998117 # 5998117). – trashgod