Felületi elemek

Az SWT számos gazdag szolgáltatást tartalmaz, de a hasznos és robusztus alkalmazások megvalósításához csak a rendszermag - felületi elemek, elrendezések és események - alapszintű ismeretére van szükség.

Felületi elem alkalmazásstruktúra

Ha az UI elemek platform munkaterület kiterjesztések segítségével kerülnek közreadásra, akkor az SWT elindításának eljárásait a munkaterület kezeli.

Ha egy SWT alkalmazást a nulláról ír meg a munkaterületen kívül, akkor az SWT alkalmazásstruktúrájával kapcsolatban több mindent kell megismerni.

Egy jellemző önálló SWT alkalmazás az alábbi struktúrával rendelkezik:

Az alábbi kódrészlet az org.eclipse.swt.examples.helloworld.HelloWorld2 alkalmazásból került adaptálásra. Mivel az alkalmazás csak a "Hello World" karaktersorozatot jeleníti meg, nem kell bejegyezni egy felületi elem-eseményhez sem.

   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 ();
   }

Kijelző

A Kijelző ábrázolja az SWT és az alapul szolgál platform grafikus felhasználói felület rendszer közötti kapcsolatot. A kijelzők elsősorban a platformesemény-ciklust kezelik, és irányítják az UI szál és egyéb szálak közötti kommunikációt. (Az UI szálkezelési problémák részletes leírását az Ügyfelek szálkezelési problémái rész tartalmazza.)

A fent alkalmazott minta a legtöbb alkalmazás esetén követhető. A megjelenítőt az ablakok előtt kell létrehozni, és a parancsértelmező bezárásakor kell eltávolítani. A kijelzővel nem kell többet foglalkoznia, hacsak nem többszálas alkalmazást hoz létre.

Parancsértelmező

A Shell egy "ablak" amelyet az operációs rendszer platform ablakkezelő kezel. A felsőszintű parancsértelmezők azok, amelyek a kijelző leszármazottjaként kerülnek létrehozásra. Ezek azok az ablakok, amelyeket a felhasználók alkalmazás használata során áthelyeznek, átméreteznek, minimálisra csökkentenek illetve maximálisra növelnek az. A másodlagos parancsértelmezők azok, amelyek másik parancsértelmező leszármazottjaként kerülnek létrehozásra. Ezek az ablakok jellemzően párbeszédablakként vagy egyéb ideiglenes ablakként kerülnek használatra, amelyek csak másik ablak kontextusában léteznek.

Szülők és leszármazottak

Minden felületi elemnek, amely nem felsőszintű parancsértelmező, rendelkeznie kell szülővel. A felsőszintű parancsértelmezők nem rendelkeznek szülővel, de egy adott Kijelzővel társítva kerülnek létrehozásra. Ez a kijelző a getDisplay() segítségével érhető el. Az összes többi felületi elem felsőszintű parancsértelmezők leszármazottjaként (közvetlen vagy közvetett) kerül létrehozásra.

Az Összetett felületi elemek rendelkezhetnek leszármazottal.

A megjelenített alkalmazásablak elképzelhető felületi elemfaként vagy -hierarchiaként, amelynek gyökere a parancsértelmező. Az alkalmazás összetettségétől függően ez lehet a parancsértelmező egy leszármazottja, számos leszármazottja vagy az összetételek beágyazott rétegei leszármazottal.

Stílusbitek

Néhány felületi elem tulajdonságot a felületi elem létrehozásakor kell beállítani, és ezek később nem módosíthatók. A lista lehet például egy- vagy többválasztásos, és rendelkezhet vagy nem görgetősávokkal.

Ezeket a tulajdonságokat stílusoknak hívjuk és a konstruktorban kerülnek beállításra. Minden felületi elem-konstruktor vesz egy int argumentumot, amely megadja az összes kívánt stílus bitszintű VAGY kapcsolatát. Bizonyos esetekben egy adott stílus tipp, amely azt jelenti, hogy nem áll rendelkezésre az összes platformon, de egyszerűen figyelmen kívül marad azon platformokon, amelyek nem támogatják.

A stíluskonstansok az SWT osztályban található nyilvános statikus mezőként. Az összes felületi elem osztályra alkalmazható konstansok listáját az SWT API hivatkozása tartalmazza.

Erőforrás eltávolítása

Az SWT alatt lévő platformokhoz az operációs rendszer erőforrások explicit lefoglalása és felszabadítása szükséges. Az SWT azon tervezési filozófiájának megtartásával, hogy tükrözze a felületi elem eszközkészlet platform alkalmazásstruktúráját, az SWT megköveteli a lefoglalt operációs rendszer erőforrások explicit felszabadítását. SWT-n a Widget.dispose() metódusok felszabadítják az adott eszközkészlet-objektumhoz rendelt erőforrásokat.

Az ökölszabály az, hogy ha létrehozza az objektumokat, akkor el kell távolítani. Az alábbiakban látható néhány egyedi alapszabály, amelyek jobban leírják ezt a filozófiát:

Ezen szabályok alól egy kivétel van. Az egyszerű adatobjektumok - mint például a téglalap és a pont - nem használnak operációs rendszer erőforrásokat. Ezek nem rendelkeznek a dispose() metódussal, ezért nem kell felszabadítani őket. Ha kétségei vannak, akkor ellenőrizze az adott osztályhoz tartozó javadoc dokumentációt.

A témakör részletes leírását a Működő erőforrások kezelése tartalmazza.