2012-02-02 7 views
5

Ho una semplice finestra di dialogo di Miglayout con righe costituite da JLabel e JTextFields. La visiblility di un numero di componenti è impostata in base alle circostanze. Tuttavia, quando sono nascosti, l'altezza della riga rimane la stessa lasciando un'area vuota.Come ridurre a zero l'altezza di una riga Miglayout quando nascondo i componenti

Ho impostato l'altezza minima della riga su 0px e ho anche altre righe impostate su "crescere", ma questo non sembra essere d'aiuto. Sicuramente, se una riga può essere alta 0px e il suo contenuto è nascosto, allora dovrebbe ridursi, non dovrebbe? Ovviamente mi manca qualcosa!

Qualsiasi aiuto molto apprezzato.

risposta

5

È possibile impostare l'hidemode del layout per impedire che i componenti invisibili influiscano sul layout.

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

imposta la modalità di nascondere di default per il layout. Questa modalità nascosta può essere sovrascritta dal vincolo del componente. La modalità nascosta specificava come il gestore di layout dovrebbe gestire un componente che non è visibile. Le modalità sono: 0 - Predefinito. Significa che i componenti invisibili verranno gestiti esattamente come se fossero visibili. 1 - La dimensione di un componente invisibile sarà impostata su 0, 0. 2 - Le dimensioni di un componente invisibile saranno impostate su 0, 0 e gli spazi saranno anch'essi impostati su 0 attorno ad esso. 3 - I componenti invisibili non parteciperanno al layout e ad esempio non occuperanno una cella della griglia.

1

Potrebbe essere necessario chiamare panel.revalidate() per impaginare i componenti dopo aver modificato la visibilità.