Avrai voglia di giocare con layout managers per controllare il posizionamento e dimensionamento dei controlli nel vostro JPanel
. I gestori dei layout sono responsabili della collocazione dei controlli, della posizione, della dimensione della finestra, ecc.
Ci sono una gran quantità di gestori di layout diversi, ciascuno dei quali consente ai controlli del layout in diversi modi. Il gestore di layout predefinito è FlowLayout
, che come hai visto semplicemente posiziona i componenti l'uno accanto all'altro da sinistra a destra. Questo è il più semplice Alcuni altri gestori di layout comuni sono:
GridLayout
- dispone i componenti in una griglia rettangolare con righe e colonne
BorderLayout
uguali dimensioni - ha una componente principale nel centro e fino a quattro componenti circostanti sopra, sotto, a sinistra e a destra.
GridBagLayout
- Big Bertha di tutti i gestori di layout integrati, è il più flessibile ma anche il più complicato da utilizzare.
Si potrebbe, ad esempio, utilizzare un BoxLayout per impaginare le etichette.
BoxLayout
impilano i componenti l'uno sopra l'altro o li posiziona in fila, a scelta. Si potrebbe pensare ad esso come una versione di FlowLayout
, ma con una maggiore funzionalità. Ecco una foto di un'applicazione che illustra l'utilizzo di BoxLayout
per visualizzare una colonna al centro di componenti:
BoxLayout screenshot http://java.sun.com/docs/books/tutorial/figures/uiswing/layout/BoxLayoutDemo.png
Un esempio di codice utilizzando BoxLayout
sarebbe:
JPanel pMeasure = new JPanel();
....
JLabel economy = new JLabel("Economy");
JLabel regularity = new JLabel("Regularity");
pMeasure.setLayout(new BoxLayout(pMeasure, BoxLayout.Y_AXIS));
pMeasure.add(economy);
pMeasure.add(regularity);
...
fonte
2009-10-08 00:14:21
Possibile duplicato di [aggiungi controlli verticalmente anziché orizzontalmente utilizzando il layout del flusso] (http://stackoverflow.com/questions/13510641/add-controls-vertically-instead-of-horizontally-using-flow-layout) – Abhijeet