SWT indeholder mange interessante funktioner, men et grundlæggende kendskab til systemets kerne - elementer, layout og aktiviteter - er alt, hvad du behøver for at implementere nyttige og robuste programmer.
Når du leverer UI-elementer vha. platformspecifikke arbejdsbænksudvidelser, håndteres starten af SWT for dig af arbejdsbænken.
Hvis du skriver et SWT-program fra bunden uden for arbejdsbænken, skal du have et bedre kendskab til programstrukturen i SWT.
Et typisk enkeltstående SWT-program har følgende struktur:
Følgende kodestykke er tilpasset fra programmet org.eclipse.swt.examples.helloworld.HelloWorld2. Eftersom programmet kun viser strengen "Hello World", behøver du ikke at registrere for elementaktiviteter.
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 (); }
Fremvisningen (display) repræsenterer forbindelsen mellem SWT og den underliggende platforms GUI-system. Fremvisninger (display) bruges primært til at administrere platformens aktivitetsløkke og styre kommunikationen mellem UI-programdelen og andre programdele. Se Problemer med programdele, hvis du ønsker en komplet beskrivelse af problemer med UI-programdele.
For de fleste programmer kan du følge det mønster, der er anvendt ovenfor. Du skal oprette en fremvisning (display), før du opretter vinduer, og du skal kassere fremvisningen, når shell'en lukkes. Du behøver ikke at tænke meget mere over fremvisningen (display), medmindre du udvikler et program med flere programdele.
En Shell er et "vindue", der administreres af styresystemplatformens vinduesstyring. Shells på øverste niveau er dem, der oprettes som en underordnet af fremvisningen (display). Disse vinduer er vinduer, som brugere flytter, tilpasser størrelsen på, minimerer og maksimerer, mens de bruger programmet. Sekundære shells er dem, der oprettes som en underordnet af en anden shell. Disse vinduer bruges typisk som dialogboksvinduer eller andre flygtige vinduer, der kun eksisterer i et andet vindues kontekst.
Alle elementer, der ikke er shells på øverste niveau, skal have en overordnet. Shells på øverste niveau har ikke en overordnet, men de oprettes sammen med en bestemt fremvisning (display). Du kan få adgang til denne fremvisning (display) vha. getDisplay(). Alle andre elementer oprettes som underordnede (direkte eller indirekte) for shells på øverste niveau.
Sammensatte elementer er elementer, der har underordnede.
Når du ser et programvindue, kan du betragte det som en elementtræstruktur, eller et hierarki, hvis rod er shell'en. Afhængigt af programmets kompleksitet kan der være en enkelt underordnet til shell'en, flere underordnede eller indlejrede lag af sammensætninger med underordnede.
Nogle elementegenskaber skal angives på det tidspunkt, hvor et element oprettes, og kan ikke efterfølgende ændres. En liste kan f.eks. være en enkelt- eller flervalgsliste og have bladringsfelter eller ikke have bladringsfelter.
Disse egenskaber, der kaldes typografier, angives i konstruktøren. Alle elementkonstruktører bruger argumentet int, der angiver den bitvise OR-sammenligning for alle ønskede typografier. I nogle tilfælde betragtes en bestemt typografi som et tip, hvilket betyder, at det måske ikke findes på alle platforme, men at det vil blive ignoreret på platforme, hvor det ikke understøttes.
Typografikonstanterne er placeret i klassen SWT som offentlige statiske felter. En liste over tilgængelige konstanter for hver elementklasse findes i API-referencen for SWT.
Platformene under SWT kræver eksplicit allokering og frigørelse af styresystemressourcer. I tråd med SWT-designfilosofien om at afspejle platformprogramstrukturen i elementværktøjskassen kræver SWT, at du eksplicit frigør styresystemressourcer, du har allokeret. I SWT bruges metoden Widget.dispose() til at frigøre ressourcer, der er knyttet til et bestemt værktøjskasseobjekt.
Tommelfingerreglen er, at hvis du opretter objektet, skal du også kassere det bagefter. Her er nogle specifikke grundregler, der yderligere forklarer denne filosofi:
Der er én undtagelse til disse regler. Simple dataobjekter, f.eks. rektangel og punkt, bruger ikke styresystemressourcer. De har ikke nogen dispose()-metode, og du behøver ikke at frigøre dem. Hvis du er i tvivl, kan du kontrollere javadoc for en bestemt klasse.
I Administrér styresystemressourcer diskuteres dette emne yderligere.