PDA

View Full Version : [JAVA] GridLayout con righe ad altezza fissa?


fbcyborg
12-06-2008, 20:56
Ciao a tutti,

lasciate che vi descriva il mio problema con delle immagini, per capirci meglio.
Ho un pannello come il seguente che ha la possibilità, tramite dei pulsanti che ora non ci sono, di aggiungere/rimuovere delle righe.

Ho pensato di utilizzare il layout GridLayout ma al diminuire del numero delle righe succede una cosa brutta.

Ecco la situazione iniziale quando le righe sono ad esempio 20:
http://img390.imageshack.us/img390/5161/20xy6.jpg (http://imageshack.us)

Diminuendo le righe ad 8 la situazione sembra rimanere ancora invariata (ovviamente la scrollbar laterale sparisce):
http://img220.imageshack.us/img220/8477/45744138gk8.jpg (http://imageshack.us)

Diminuendo ancora le righe, a 4 e a 2 guardate che cosa succede:
http://img228.imageshack.us/img228/3109/56011286ka8.jpg (http://imageshack.us)
____

2:

http://img233.imageshack.us/img233/2848/14545983fw1.jpg (http://imageshack.us)


Domanda: come faccio a fare in modo che ogni "riga" mantenga sempre la stessa altezza come nel caso di 20 e 8 righe, e che quello scempio non venga fuori?

Grazie

smart83
14-06-2008, 16:06
potresti mettere un controllo sulla size.se nel pannello sn visibili otto righe,allora nn appena scende il numero di righe presenti gli imposti una size diversa.del tipo:

if(numeroRighe<8)
gridLayout.setPreferedSize(altezzaSingolaRiga*numeroRighe);

ora il metodo per settare la size nn lo ricordo di preciso,ma dovrebbe essere un qlc del genere...
cmq potrebbe funzionare,anzi lo spero per te

fbcyborg
14-06-2008, 16:12
potresti mettere un controllo sulla size.se nel pannello sn visibili otto righe,allora nn appena scende il numero di righe presenti gli imposti una size diversa.del tipo:

if(numeroRighe<8)
gridLayout.setPreferedSize(altezzaSingolaRiga*numeroRighe);

ora il metodo per settare la size nn lo ricordo di preciso,ma dovrebbe essere un qlc del genere...
cmq potrebbe funzionare,anzi lo spero per te

Ti ringrazio, ma il problema è proprio che sembra non esserci un metodo che serve per dichiarare l'altezza di ogni riga. Inoltre con quel metodo che dici te, regoleresti comunque un'altezza totale. Infatti, facendo altezzaSingolaRiga*numeroRighe, potrebbe anche andare bene, ma come la imposto "altezzaSingolaRiga" ? Sta tutto lì il problema.

Grazie ancora.

Forse bisogna utilizzare un'altro Layout, per esempio il GridBagLayout, ma non saprei se ne vale la pena andarselo a studiare e perderci tempo sopra se poi anche quello non va bene.

smart83
14-06-2008, 16:37
beh,se tu hai l'altezza del pannello,e il numero di righe max contenute in quel pannello.......potrebbe bastare una semplice divisione.provare nn costa nulla,infondo è solo un'istruzione in più

fbcyborg
15-06-2008, 00:27
Perfetto!

Ti ringrazio ha funzionato benissimo! :D

:fagiano: :fagiano: :fagiano: :fagiano:

smart83
16-06-2008, 08:46
Mi fa piacere :) :) :) :)