Prvky widget

SWT obsahuje mnoho bohatých vlastností, ale základní znalost jádra systému - prvků widget, rozvržení a událostí - to je vše, co je zapotřebí pro implementaci užitečných a robustních aplikací.

Struktura aplikace prvku widget

Vkládáte-li prvky uživatelského rozhraní pomocí rozšíření pracovní plochy platformy, mechanizmus spouštění SWT za vás ošetřuje pracovní plocha.

Pokud píšete aplikaci SWT od začátku mimo pracovní plochy, musíte víc rozumět struktuře aplikace SWT.

Typická samostatná aplikace SWT má následující strukturu:

Následující úsek kódu je převzat z aplikace org.eclipse.swt.examples.helloworld.HelloWorld2.Protože aplikace pouze zobrazuje řetězec "Ahoj světe," nemusí se zaregistrovat pro žádnou událost prvku widget.

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

Display

Display (obrazovka) představuje spojení mezi SWT a systémem GUI základní platformy. Obrazovky se používají především pro správu smyčky událostí platformy a pro řízení komunikace mezi vláknem uživatelského rozhraní a jinými vlákny. (Úplnou diskusi o otázkách vláken uživatelského rozhraní naleznete v Problematika vláken klientů.)

Pro většinu aplikací můžete postupovat podle vzoru, který je použitý výše. Obrazovku musíte vytvořit před vytvořením jakéhokoli okna a zlikvidovat ji musíte, když je vaše nadstavba zavřena. Obrazovkou se již nemusíte zabývat, pokud nenavrhujete aplikaci s vícenásobnými jednotkovými procesy.

Shell

Shell (nadstavba) je "okno" spravované správcem oken platformy OS.Nadstavby nejvyšší úrovně jsou ty, které jsou vytvořeny jako podřízené prvky obrazovky. Tato okna jsou okny, která uživatel při používání aplikace přesouvá, mění jejich velikost, minimalizuje a maximalizuje. Druhotné nadstavby jsou ty, které jsou vytvořeny jako podřízené prvky jiné nadstavby. Tato okna se zpravidla používají jako dialogová okna nebo jiná přechodná okna, která existují pouze v kontextu jiného okna.

Nadřazené a podřízené prvky

Všechny prvky widget, které nejsou nadstavbami nejvyšší úrovně, musejí mít nadřazený prvek. Nadstavby nejvyšší úrovně nemají nadřazený prvek, ale jsou vytvořeny ve spojitosti s konkrétní obrazovkou Display. K tomuto zobrazení můžete přistupovat prostřednictvím getDisplay(). Všechny ostatní prvky widget jsou vytvořeny jako podřízené prvky (přímé či nepřímé) nadstaveb nejvyšší úrovně.

Kompozitní prvky widget ( Composite) jsou prvky, které mohou mít podřízené prvky.

Když vidíte okno aplikace, můžete si jej představit jako strom nebo hierarchii prvku widget, jehož kořenem je nadstavba. V závislosti na složitosti aplikace může existovat jediný podřízený prvek nadstavby, několik podřízených prvků, nebo vnořené vrstvy kompozitních prvků s podřízenými prvky.

Stylové bity

Některé vlastnosti prvku widget musejí být nastaveny v čase, kdy je prvek widget vytvářen, a nemohou být následně změněny. Například seznam může být jednoduchým nebo vícenásobným výběrem a může nebo nemusí mít posuvníky.

Tyto vlastnosti nazývané styly musejí být nastaveny v konstruktoru. Všechny konstruktory prvku widget mají argument int, který bitově specifikuje OR všech požadovaných stylů. V některých případech je určitý styl považovaný za pokyn, což znamená, že nemusí být dostupný na všech platformách, ale bude shovívavě ignorován na platformách, které jej nepodporují.

Stylové konstanty se nacházejí ve třídě SWT jako veřejná statická pole. Seznam použitelných konstant pro každou třídu je obsažen v odkazu rozhraní API pro SWT.

Likvidace prostředku

Platformy pod SWT vyžadují explicitní přidělování a uvolňování prostředků OS. Při dodržování filozofie návrhu SWT, která reflektuje strukturu aplikace platformy v sadě nástrojů prvku widget, SWT vyžaduje, abyste explicitně uvolnili všechny prostředky OS, které jste alokovali. V SWT se pro uvolnění prostředků asociovaných s určitým objektem sady nástrojů prvku widget používá metoda Widget.dispose().

Platí pravidlo, že když objekt vytvoříte, musíte jej zlikvidovat. Zde je několik určitých základních pravidel, které tuto filozofii dále objasňují:

Tyto pravidla mají jednu výjimku.Jednoduché datové objekty, jako jsou Rectangle a Point, nevyužívají prostředky operačního systému. Ty nemají metodu dispose() a vy je nemusíte uvolňovat. V případě pochybností se podívejte na dotyčnou třídu do dokumentace Javadoc.

Další diskusi na toto téma naleznete v Správa provozních prostředků.