View Full Version : [Java/Swing] dimensioni componenti...
TuLKaS85
27-02-2007, 20:03
vorrei capire come mai quando uso una Jlabel anche dopo aver effettuato un setSize (metodo di Component) la label resta della grandezza del pannello che la contiene...
sò che Swing adatta automaticamente i componenti, ma lo fa anche dopo aver settato una dimensione ?? come si disabilita questa cosa ??
nel mio esempio ho un pannello con un BorderLayout e nella sezione North ci metto sta label, con un Border impostato.... il bordo dell'etichetta anche dopo setSize mi occupa tutta la sezione north!!
^TiGeRShArK^
27-02-2007, 21:49
col BorderLayout funziona così.
Per evitare quresto problema nel border layout aggiungi prima un pannello e poi aggiungi a questo pannello la JLabel e dovrebbe andare....
ovviamente scegli un layout che ti permetta di settare correttamente la size della JLabel.
Se poi arriva qualcuno ke sa qualke metodino carino x settare le dimensioni fisse della JLabel anke con un BorderLayout ben venga, dato ke io saranno secoli ke nn lo uso senza pannelli di mezzo :p
sò che Swing adatta automaticamente i componenti, ma lo fa anche dopo aver settato una dimensione ?? come si disabilita questa cosa ??Leggi <qui> (http://java.sun.com/docs/books/tutorial/uiswing/layout/problems.html)
TuLKaS85
28-02-2007, 18:43
col BorderLayout funziona così.
Per evitare quresto problema nel border layout aggiungi prima un pannello e poi aggiungi a questo pannello la JLabel e dovrebbe andare....
ovviamente scegli un layout che ti permetta di settare correttamente la size della JLabel.
Se poi arriva qualcuno ke sa qualke metodino carino x settare le dimensioni fisse della JLabel anke con un BorderLayout ben venga, dato ke io saranno secoli ke nn lo uso senza pannelli di mezzo :p
risolto come di tu grazie !!
ho letto le istruzioni postate da andbin, ho capito che il size cmq se il layout non lo supporta non lo si può modificare, a meno che non si fa l'override di alcuni metodi....
x ora mi accontento GRAZIE !:)
Se ti puo' aiutare ti consiglio di usare GridBagLayout, che alla fine e'
il piu' semplice da usare per fare interfacce resizabili decentemente.
Qui sul forum c'e' anche un tutorial di pgi.
Network86
01-03-2007, 11:51
Dovresti usare il metodo setResizable(...).
^TiGeRShArK^
01-03-2007, 19:54
Se ti puo' aiutare ti consiglio di usare GridBagLayout, che alla fine e'
il piu' semplice da usare per fare interfacce resizabili decentemente.
Qui sul forum c'e' anche un tutorial di pgi.
:mbe:
che sia il migliore da usare (fino a java 5) per le interfacce resizabili nesusno lo mette in dubbio...
ma ke sia il + semplice mi sorge nuova :fagiano:
il gridbag layout è un discreto troiaio per come la vedo io :p
e cmq la cosa migliore è usare il nuovo GroupLayout di Java 6 abbinato ad un IDE con un editor grafico quantomeno decente (tipo quello di netbeans tanto x intenderci).
In quel modo facilità di scrittura della GUI e resizabilità (ma mi sa ke l'hai inventata tu questa nuova parola :asd: )vanno a braccetto :D
Se dici che e' difficile non hai letto il tutorial di pgi, prova a fare le interfacce
esposte la' con un altro layout e poi mi fai vedere.
Forse si possono anche fare con flow o border o altri, usando un carretto di
pannelli diversi, ma ti assicuro che una volta disegnata su carta la tua idea di
interfaccia basta dividerla in righe e colonne e fai in un attimo con gridbag.
Sto facendo ora un'interfaccia non banale, che tra l'altro avevo cominciato a fare
visualmente con netbeans... poi sono passato a scriverla a mano con gridbag
e tutto sta filando liscio. Matisse non l'ho trovato altrettanto facile da usare,
ma probabilmente sono io che sono scarso.
Per quanto riguarda java6 non posso usarlo, e non so neanche come sia il
nuovo layout, quindi non mi pronuncio - ci daro' un'occhiata in futuro.
Poi ognuno ha i propri gusti...
Ciao
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.