2012-02-02 16 views
5

Tengo un diálogo simple de Miglayout con filas que incluyen JLabels y JTextFields. La visibilidad de varios componentes se establece según las circunstancias. Sin embargo, cuando están ocultos, la altura de la fila sigue siendo la misma, dejando un área en blanco.¿Cómo puedo reducir la altura de una fila de Miglayout a cero cuando oculto los componentes?

He establecido la altura mínima de la fila en 0px y también tengo otras filas establecidas para 'crecer', pero esto no parece ayudar. Seguramente, si una fila puede tener 0px de altura y su contenido está oculto, entonces debería reducirse, ¿no? ¡Obviamente me falta algo!

Cualquier ayuda muy apreciada.

Respuesta

5

Puede establecer el modo de ocultación del diseño para evitar que componentes invisibles afecten al diseño.

De http://migcalendar.com/miglayout/cheatsheet.html:

Ajusta el modo de ocultar por defecto para el diseño. Este modo oculto puede ser anulado por la restricción del componente. El modo ocultar especificó cómo el administrador de diseño debe manejar un componente que no está visible. Los modos son: 0 - Por defecto. Significa que los componentes invisibles se manejarán exactamente como si fueran visibles. 1 - El tamaño de un componente invisible se establecerá en 0, 0. 2 - El tamaño de un componente invisible se establecerá en 0, 0 y las brechas también se establecerán en 0 a su alrededor. 3 - Los componentes invisibles no participarán del diseño en absoluto y, por ejemplo, no ocupará una celda de la grilla.

1

Puede necesitar llamar al panel.revalidate() para diseñar los componentes después de que su visibilidad cambie.

Cuestiones relacionadas