Gyakran a legjobb módszer az egyszerű felületi elem pozícionálásának kezelésére egy átméretezés-eseményfigyelő. A felületi elemek elhelyezésekor vannak az alkalmazások által közösen használt minták. Ezek a minták strukturálhatók konfigurálható elrendezési algoritmusként, amelyet a különböző alkalmazások újból használhatnak.
Az SWT elrendezéseket ad meg, amelyek a leszármazott felületi elemek általános célpozícionálását és -méretezését biztosítják egy összetételben. Az elrendezések a Layout absztrakt osztályainak alosztályai. Az SWT szokásos elrendezései az org.eclipse.swt.layout csomagban találhatók meg.
A felületi elemek átméretezése és pozícionálása során néhány általános definíció kerül alkalmazásra:
Ezek az alapelvek fontosak az alkalmazások számára függetlenül attól, hogy az elrendezést használják-e. Az elrendezés a csomag átméretezési funkció megfelelő módja újrafelhasználáshoz.
Az elrendezések néhány további fogalmat is bevezetnek:
A fogalmak további leírását és képes bemutatót a SWT elrendezések megismerése rész tartalmaz.
Az alábbi kódrészlet egy egyszerű esetet jelenít meg, amelyben az alkalmazás egy átméretezés visszahívást tartalmaz a címke méretének a szülő-parancsértelmező méretére állításához:
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 ()); } });
A következő részlet egy elrendezést használ ugyanezen hatás eléréséhez:
Display display = new Display (); Shell shell = new Shell (display); Label label = new Label (shell, SWT.CENTER); shell.setLayout (new FillLayout ());
Az elrendezés még ezen egyszerű példa esetén is egyszerűsíti az alkalmazáskódot. Bonyolultabb elrendezések esetén az egyszerűsítés még látványosabb.
Az alábbi táblázat összefoglalja az SWT által biztosított általános elrendezéseket.
Elrendezés |
Cél |
---|---|
FillLayout | A vezérlőelemeket egy sorban vagy oszlopban rendezi el és ezáltal kikényszeríti, hogy egyforma méretűek legyenek. |
FormLayout | A FormAttachments segítségével pozícionálja a leszármazottat a baloldali, jobboldali, alsó és felső szélek beállítása érdekében. |
GridLayout | A leszármazottat oszlopok és sorok szerint pozícionálja. |
RowLayout | A leszármazottat vízszintes sorokba vagy függőleges oszlopokba helyezi. |