Środowisko SWT obejmuje szereg bardzo rozbudowanych funkcji, jednak do tworzenia użytecznych, profesjonalnych aplikacji wystarcza podstawowa wiedza na temat zasadniczych elementów tego systemu: widgetów, układów i zdarzeń.
Gdy elementy interfejsu użytkownika są dodawane przy użyciu rozszerzeń platformy środowiska roboczego, mechaniczne aspekty uruchamiania biblioteki SWT są realizowane przez środowisko robocze.
Jeśli aplikacja SWT jest tworzona od podstaw poza środowiskiem roboczym, należy lepiej poznać strukturę aplikacji SWT.
Typowa, autonomiczna aplikacja SWT ma następującą strukturę:
Następujący fragment kodu został zaadaptowany z aplikacji org.eclipse.swt.examples.helloworld.HelloWorld2.Ponieważ działanie aplikacji polega wyłącznie na wyświetleniu napisu "Hello World,", nie ma potrzeby rejestrowania funkcji nasłuchiwania zdarzeń dotyczących widgetów.
public static void main (String [] args) { Display display = new Display (); Shell shell = new Shell (display); Label label = new Label (shell, SWT.CENTER); label.setText ("Hello_world"); label.setBounds (shell.getClientArea ()); shell.open (); while (!shell.isDisposed ()) { if (!display.readAndDispatch ()) display.sleep (); } display.dispose (); }
Obiekt Display (ekran) stanowi łącze między pakietem SWT a systemem GUI danej platformy. Ekrany służą przede wszystkim do zarządzania pętlą zdarzeń platformy oraz do kontrolowania komunikacji między wątkiem interfejsu użytkownika a innymi wątkami. Pełne omówienie zagadnień dotyczących obsługi wątków interfejsu użytkownika zawiera sekcja Zagadnienia związane z wątkami klientów.
W przypadku większości aplikacji można postępować według przedstawionego wyżej schematu. Obiekt ekranu należy utworzyć przed przystąpieniem do tworzenia jakichkolwiek okien oraz pamiętać o jego zutylizowaniu po zamknięciu powłoki. Poza tym nie są wymagane żadne dalsze operacje na tym obiekcie, chyba że tworzona jest aplikacja wielowątkowa.
Obiekt Shell (powłoka) to "okno" zarządzane przez menedżera okien platformy systemu operacyjnego. Powłoki najwyższego poziomu to okna tworzone jako elementy potomne obiektu ekranu. Są to okna, które użytkownik może przesuwać, minimalizować, maksymalizować i zmieniać ich wielkość podczas korzystania z aplikacji. Powłoki drugorzędne powstają jako elementy potomne innych okien powłoki. Te okna pełnią najczęściej rolę okien dialogowych lub innych obiektów występujących wyłącznie w kontekście innego okna.
Wszystkie widgety nie będące powłokami najwyższego poziomu muszą mieć obiekt nadrzędny. Powłoki najwyższego poziomu nie mają takiego obiektu nadrzędnego, jednak są zawsze tworzone w oparciu o pewien obiekt Display. Dostęp do obiektu Display jest możliwy przy użyciu metody getDisplay(). Wszystkie pozostałe widgety są tworzone jako elementy potomne (bezpośrednie lub pośrednie) powłoki najwyższego poziomu.
Widgety złożone ( Composite) są to widgety, które same mogą mieć elementy potomne.
Każde okno aplikacji można postrzegać jako drzewo widgetów lub hierarchię, której korzeniem jest powłoka główna. Zależnie od stopnia złożoności aplikacji powłoka może mieć jeden element potomny, kilka elementów potomnych albo wiele zagnieżdżonych warstw widgetów złożonych z elementami potomnymi.
Niektóre właściwości widgetu muszą zostać określone w momencie tworzenia widgetu i nie można ich już później zmieniać. Na przykład lista może dopuszczać wybór tylko jednego albo wielu elementów i może mieć paski przewijania albo ich nie mieć.
Te właściwości, nazywane stylami, są określane w konstruktorze. Wszystkie konstruktory widgetów przyjmują argument typu int, który jest sumą logiczną na poziomie bitów wszystkich użytych stylów. W niektórych przypadkach określony styl jest traktowany jako podpowiedź, co oznacza, że może on nie być dostępny na wszystkich platformach i w razie braku jego obsługi zostanie po prostu zignorowany.
Stałe definicji stylów znajdują się w klasie SWT jako publiczne pola statyczne. Lista odpowiednich stałych dla poszczególnych klas widgetów znajduje się w opisie interfejsu API pakietu SWT.
Platformy stanowiące podstawę pakietu SWT wymagają jawnego przydzielania i zwalniania zasobów systemu operacyjnego. Zgodnie z przyjętą w pakiecie SWT filozofią programowania, która polega na odzwierciedlaniu struktury aplikacji dla platformy poprzez pakiet do obsługi widgetów, pakiet SWT wymaga od kodu samodzielnego zwalniania wszelkich zasobów systemu operacyjnego wcześniej przez ten kod przydzielonych. Do zwalniania zasobów skojarzonych z określonym obiektem w pakiecie SWT służy metoda Widget.dispose().
Prosta w zastosowaniu reguła mówi, że jeśli w kodzie został utworzony obiekt, musi zostać zutylizowany. A oto zestaw bardziej szczegółowych reguł zgodnych z tą filozofią:
Od powyższych reguł istnieje jeden wyjątek. Proste obiekty danych, takie jak Rectangle i Point, nie używają zasobów systemu operacyjnego. Są one pozbawione metody dispose() i nie ma potrzeby ich jawnego zwalniania. W razie wątpliwości należy sprawdzić opis określonej klasy w dokumentacji Javadoc.
Szersze omówienie tych zagadnień zawiera artykuł Managing operating resources.