Sono stati illustrati alcuni semplici esempi che mostrano come dimensionare o posizionare widget secondari in base alla dimensione dell'elemento principale di riferimento. Finora questo tipo di calcolo è stato eseguito in risposta ad un listener di ridimensionamento. Questo è spesso il modo migliore per gestire il posizionamento di widget semplici. Tuttavia, esistono modelli comuni utilizzati dalle applicazioni durante il posizionamento di widget. Tali modelli possono essere strutturati come algoritmi di layout configurabili che è possibile riutilizzare con molte applicazioni differenti.
SWT definisce i layout che forniscono la dimensione e la posizione generale di widget secondari in un composto. I layout sono sottoclassi della classe astratta Layout. I layout SWT standard si trovano nel pacchetto org.eclipse.swt.layout.
Durante il ridimensionamento e il posizionamento dei widget è necessario comprendere alcune definizioni generali:
Questi concetti sono rilevanti per le applicazioni indipendentemente dall'utilizzo di un layout. In effetti, un layout può rappresentare un modo conveniente per creare pacchetti di funzionalità ridimensionate per un successivo riutilizzo.
I layout introducono alcuni concetti aggiuntivi:
Per ulteriori informazioni e immagini dimostrative, vedere Comprensione dei layout in SWT .
Il seguente frammento di codice illustra il semplice caso di un'applicazione che utilizza un callback di ridimensionamento per adattare la dimensione di un'etichetta alla dimensione della relativa shell principale:
Display display = new Display (); Shell shell = new Shell (display); Label label = new Label (shell, SWT.CENTER); shell.addControlListener (new ControlAdapter () { public void controlResized(ControlEvent e) { label.setBounds (shell.getClientArea ()); } });
Il successivo frammento utilizza un layout per ottenere lo stesso effetto:
Display display = new Display (); Shell shell = new Shell (display); Label label = new Label (shell, SWT.CENTER); shell.setLayout (new FillLayout ());
Anche per questo semplice esempio, l'utilizzo di un layout riduce il codice dell'applicazione. Per i layout più complessi la semplificazione è anche maggiore.
SWT fornisce quattro classi di layout predefinite che possono essere utilizzate in diverse situazioni.