|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
[JAVA] Aiuto con GridLayout. "2 righe che occupano tutto lo spazio"
Salve a tutti,
non riesco a capire come risolvere il seguente problema. Ho un JPanel che ha come layout il GridLayout, semplicemente impostato con una colonna ed n righe. Il fatto è che se il numero delle righe scende al di sotto di un certo numero queste tendono ad occupare sempre più spazio possibile. Capisco bene che è un comportamento normale ma vorrei evitarlo. Faccio un esempio. Se ho un JPanel (in un JScrollPane) 819x615, ed un altro JPanel alto 44 e largo quanto è largo il JPanel contenitore, se imposto un numero di righe per il GridLayout uguale a 20 (ad esempio) e aggiungo al JPanel 20 pannelli alti 44, ognuno di questi pannelli ha la sua altezza originaria (44), ma se scendo sotto una certa soglia questa altezza aumenta. Ad esempio se ne metto solo 2, questi tenderanno a occupare metà spazio per il primo e metà per il secondo. Come posso fare per fare in modo che ciò non accada? Ho provato con un sacco di metodi, ad esempio anche a ridimensionare il JPanel contenitore in base a quante righe ci sono moltiplicato per 44, ma non funziona. EDIT: Per il momento ho trovato un "trucco". Ho messo 2 pannelli in un JContentPane. Uno a nord e uno al centro. Quello a nord lo uso per metterci i pannellini alti 44, con gridLayout. Quello al centro lo lascio vuoto, per far sì che si espanda fino ad occupare tutto lo spazio possibile. Così ottengo l'effetto desiderato. Ultima modifica di fbcyborg : 13-03-2010 alle 11:52. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Hai mai dato un'occhiata alla classe javax.swing.Box?
E in alternativa: il tuo GridLayout a singola colonna e N righe non è che potrebbe comodamente essere espresso usando una JList?
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
No non conoscevo javax.swing.Box.
Credo che non sia possibile usare una JList nel mio caso. A me serve una lista di pannelli che contengono JLabel e JButton. Non so se sia possibile fare lo stesso con una JList, ma a occhio direi di no! |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Box la puoi usare per generare delle "scatole", verticali od orizzontali, in cui incapsulare i tuoi componenti. Inoltre puoi generare delle aree "di riempimento" (component) a dimensione fissa o a espansione (le "colle") che puoi infilare tra i tuoi componenti per gestirne il layout. Nel tuo caso potrebbe funzionare un'impostazione del genere: ogni "riga" che infili nel grid layout è una Box orizzontale [Box.createHorizontalBox()] al cui interno infili il tuo pannello che racchiude tutti i vari componenti, ad esempio. Comunque per farti un'idea più precisa puoi cercare il tutorial relativo (How to use BoxLayout) nel Really Big Index dei Java Tutorials.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) Ultima modifica di banryu79 : 15-03-2010 alle 13:24. |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Ok!
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:51.