Occasionalmente può essere necessario scrivere una classe Layout personalizzata. Ciò è utile quando si dispone di un layout complesso che viene utilizzato in molti punti diversi dell'applicazione. Notare che, a meno che non si stia scrivendo un layout molto generico che verrà utilizzato da vari widget di Composite, a volte è più semplice e più facile calcolare le dimensioni e la posizione degli elementi secondari di un listener di ridimensionamento.
I layout sono responsabili dell'implementazione di due metodi:
Un terzo metodo, flushCache(...), può essere implementato facoltativamente per cancellare i dati in cache associati ad uno specifico controllo. Spesso, il metodo computeSize() di un widget può essere oneroso e quindi i layout possono mettere in cache i risultati per migliorare le prestazioni.
Ulteriori informazioni sui layout personalizzati sono disponibili in Comprensione dei layout in SWT.