OZ 2011/1-2

40 ORGANIZACIJA ZNANJA 2011, LETN. 16, ZV. 1 – 2 } return 42; } @Override protected void process(List<int> numbers) { for (int number : numbers) { label.setText("Number " + number + " is wrong answer"); } } @Override protected void done() { try { label.setText(get() + " is the answer to the ultimate question " + "concerning life, the universe, and everything"); } catch (Exception ignore) { } } } (new MeaningOfLifeFinder()).execute(); Metoda doInBackground() je časovno potratna in se izvaja zunaj niti EDT . Z metodo publish() sprožimo metodo process() znotraj niti EDT , ki osvežuje oznake grafičnega vmesnika. Ko metoda doInBackground() zaključi delo, pokliče metoda niti EDT done() . Ta izvede zadnje popravke grafičnega vmesnika. Časovno potratne operacije lahko preložimo na kasnejši čas (nočni čas) z uporabo časovnikov, ki jih napišemo sami z uporabo niti ali pa uporabimo že pripravljene vmesnike javax.Swing.Timer in java.util.Timer . Prvi vmesnik se vedno izvaja znotraj niti EDT , medtem ko vsaka vključitev drugega vmesnika tvori novo nit. Primer uporabe prvega vmesnika, ki izvede utripanje kurzorja na vsakih 300 milisekund: int delay = 300; //milliseconds ActionListener taskPerformer = new ActionListener() { public void actionPerformed(ActionEv ent evt) { //...Perform redraw cursor... } }; new Timer(delay, taskPerformer).start(); Swing Explorer Swing Explorer je češko odprtokodno orodje za razhroščevanje napak v vmesnikih Swing. Prenesemo si lahko vtičnik za okolje NetBeans ali Eclipse. Stvar deluje dobro (Swing Explorer plug-in 1.4 za Eclipse), le hitrost delovanja je bolj slaba. V Eclipsu se v zagonih "run/ debug" pojavi možnost za zagon aplikacije znotraj Swing Explorerja. Za uporabo tega grafičnega orodja je potrebno dobro poznavanje arhitekture Swing. Z orodjem lahko: • raziskujemo interno delovanje Swinga, • se sprehajamo po hierarhiji komponent in podlag (angl. layout ), • raziskujemo izrisovanje komponent (L&F), • določimo natančne velikosti in pozicije komponent, • analiziramo probleme z nitjo Event Dispatch, • sledimo dogodkomAWT (poslušalci mouse/key/focus …). Swing Explorer je zelo močno orodje pri razvoju uporabniških vmesnikov. Težje pa ga je izkoristiti pri generični gradnji grafičnega vmesnika, kot na primer našega GDialoga. Slika 1: Uporabniški vmesnik Swing Explorer Garbage collector Sprostilec pomnilnika (garbage collecotr – GC ) je zadolžen za zbiranje in odstranjevanje virov (objekti, povezave ...), ki jih aplikacija ne potrebuje več. Na to, kdaj se zaganja in kako deluje, nimamo velikega vpliva. Paziti moramo le na to, da pravilno sproščamo neuporabljene vire, da jih lahko GC odstrani. Pri velikih količinah alociranega in sproščenega pomnilnika lahko pride v delovanju aplikacije do opaznih zakasnitev, saj mora GC preveriti ogromno količino povezav do objektov in ugotoviti, ali lahko POROČILO

RkJQdWJsaXNoZXIy MTAxMzI5