ah no ok adesso funzia...dovevo usare il setPreferredSize al posto del maximumSize...
ah no ok adesso funzia...dovevo usare il setPreferredSize al posto del maximumSize...
altra domanda semplice...ho un panelCenter che è un JPanel...
In questo panelCenter faccio queste due operazioni:
panelCenter.add(scrollPane2, BorderLayout.CENTER);
panelCenter.add(ButtonLogin, BorderLayout.NORTH);
quindi, teoricamente, il ButtonLogin dovrebbe stare sopra il scrollPane...il risultato è l'esatto contrario...io voglio fare in modo che il bottone stai sopra questo scrollPane che contiene una tabella...
Sicuro che panelCenter abbia un BorderLayout??Originariamente inviato da lizard88mc
il risultato è l'esatto contrario...
Nota che un JPanel per default ha un FlowLayout.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
che caspita...pensavo che mettendogli add(..., BorderLayout.North) lui si mettesse automaticamente un borderLayout...sti layout maledetti...
Un'altra cosa...mettendo caso che io volessi prendere quel scrollPane e centrarlo nello spazio a lui assegnato (è più piccolo rispetto a dove voglio metterlo) dovrei usare un BoxLayout????
No di certo.Originariamente inviato da lizard88mc
che caspita...pensavo che mettendogli add(..., BorderLayout.North) lui si mettesse automaticamente un borderLayout...sti layout maledetti...
Il content pane di JFrame/JDialog/JWindow/JInternalFrame/JApplet ha per default un BorderLayout. JPanel fa eccezione e ha un FlowLayout.
E se/quali "constraints" (vincoli) passare a add() dipende solo dal layout manager. Con FlowLayout non ci sono e non servono constraints, quindi non serve passare add(comp, qualcosa).
Tecnicamente sarebbe possibile ma devi tenere conto di una cosa: BoxLayout rispetta anche il "maximum size" dei componenti. Il fatto è che JScrollPane ha per default un maximum size enorme.Originariamente inviato da lizard88mc
mettendo caso che io volessi prendere quel scrollPane e centrarlo nello spazio a lui assegnato (è più piccolo rispetto a dove voglio metterlo) dovrei usare un BoxLayout????
Fai:
System.out.println(new JScrollPane().getMaximumSize());
e te ne accorgi subito ...
Quindi BoxLayout cercherebbe di far occupare più spazio possibile al JScrollPane ... e nel tuo caso buonanotte ....
Se imponi un maximum size al JScrollPane, allora ok. Metti nel BoxLayout un "glue", poi il JScrollPane e poi un altro glue.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
ottimo...sto iniziando a capire come caspita funzionano questi layout che hanno una certa perversione dentro secondo me...cmq si adesso effettivamente se al scrollPane gli imposto minimumsize e maximumsize la cosa funziona ottimamente...se invece gli mettevo solo il preferredsize mica mi ascoltava...
T ringrazio per la pazienza...grazie mille...
Io non ho mai trovato nulla di così "perverso".Originariamente inviato da lizard88mc
questi layout che hanno una certa perversione dentro
A livello base le cose sono abbastanza semplici: ogni componente ha 4 "dimensioni": minimum-size, preferred-size, maximum-size e (real) size.
Le prime 3 sono informazioni per i layout manager. Un layout manager può usare una, alcune, tutte o nessuna di queste 3 dimensioni. A seconda del layout e della/e area/e del layout (es. in BorderLayout nella parte CENTER nessuna delle 3 viene considerata!).
La dimensione "reale" (getSize/setSize) è quella effettiva che si vede a video. Se c'è un layout manager è lui che la imposta. Se non c'è, è il caso del posizionamento "assoluto" e si deve usare esplicitamente setBounds o setLocation+setSize per posizionare il componente.
Tutto qui (almeno come base).
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet