Ofte er den bedste metode til at håndtere enkel placering af elementer vha. en resize-aktivitetslytter. Der er dog nogle fælles mønstre, som bruges af programmer ved placering af elementer. Disse mønstre kan struktureres som konfigurérbare layoutalgoritmer, der kan genbruges af mange forskellige programmer.
SWT definerer layout, der indeholder generelle muligheder for placering og tilpasning af størrelse på underordnede elementer i en sammensætning. Layout er underklasser til abstract-klassen Layout. SWT-standardlayoutene findes i pakken org.eclipse.swt.layout.
Der er nogle generelle definitioner, som bruges ved ændring af størrelse på og placering af elementer:
Disse begreber er relevante for programmer, uanset om der anvendes et layout eller ej. Et layout kan betragtes som en praktisk metode til at pakke størrelsestilpasning med henblik på genbrug.
Layout indeholder nogle ekstra begreber:
I Layout i SWT finder du en mere detaljeret beskrivelse og billeder, der demonstrerer disse begreber.
Følgende kodestykke viser et enkelt eksempel på et program, der anvender et resize-tilbagekald til at tilpasse størrelsen på en etiket til størrelsen af den overordnede shell:
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 ()); } });
Det næste stykke bruger et layout til at opnå samme effekt:
Display display = new Display (); Shell shell = new Shell (display); Label label = new Label (shell, SWT.CENTER); shell.setLayout (new FillLayout ());
Selv i dette simple eksempel reducerer anvendelsen af et layout mængden af kode. Ved mere komplekse layout er forenklingen langt større.
Følgende tabel opsummerer de standardlayout, der findes i SWT.
Layout |
Formål |
---|---|
FillLayout | Tilpasser layoutet af kontroller i en enkelt række eller kolonne og tvinger dem til at have samme størrelse. |
FormLayout | Placerer de underordnede ved at bruge FormAttachments til at konfigurere venstre, øverste, højre og nederste kant af de enkelte underordnede. |
GridLayout | Placerer de underordnede i rækker og kolonner. |
RowLayout | Placerer de underordnede i enten vandrette rækker eller lodrette kolonner. |