Absztrakt ablak eszköztár

Az Abstract Window Toolkit (AWT) a Java nyelv eredeti platformfüggetlen GUI ablakkönyvtára (Widget toolkit) . Az AWT mostantól a Java Foundation Classes (JFC) része, amely egy szabványos API Java programok grafikus felhasználói felületének megvalósításához .

Szintén az AWT a szabványos grafikus felhasználói felület könyvtár néhány Java ME - profilhoz . Például a Connected Device Configuration profilokhoz a Java futtatókörnyezet szükséges a mobiltelefonokon az AWT támogatásához.

Történelem

Amikor a Sun Microsystems 1995-ben először kiadta a Java-t, az AWT widgetek vékony absztrakciós réteget biztosítottak az alapvető natív felhasználói felületen . Például egy AWT jelölőnégyzet létrehozásával az AWT közvetlenül meghív egy alacsonyabb szintű natív szubrutint, amely létrehozza a jelölőnégyzetet. A Microsoft Windows rendszeren lévő jelölőnégyzet azonban nem teljesen ugyanaz, mint a Mac OS vagy a Unix különféle változataiban lévő jelölőnégyzet . Egyes fejlesztők előnyben részesítik ezt a modellt, mert nagyfokú konformitást biztosít a fő ablakkezelő eszközkészlettel, és zökkenőmentes integrációt biztosít a natív alkalmazásokkal. Más szavakkal, az AWT-vel írt grafikus felhasználói felület úgy néz ki, mint egy natív Microsoft Windows-alkalmazás, ha Windowson fut, ugyanakkor úgy néz ki, mint egy natív Apple Macintosh alkalmazás , ha Mac-en fut stb. Néhány fejlesztő azonban nem szereti ezt a modellt, mert jobban szeretik, ha alkalmazásaik minden platformon ugyanúgy néznek ki.

A J2SE 1.2 -ben az AWT widgeteket nagyrészt felváltották a Swing moduljai . Amellett, hogy gazdagabb felhasználói felületelemeket biztosít, a Swing saját widgeteket rajzol (a Java 2D segítségével alacsony szintű helyi grafikus alrendszer- rutinokat hív meg), ahelyett, hogy az operációs rendszer magas szintű felhasználói felület moduljára hagyatkozna. A Swing lehetővé teszi vagy a platform natív megjelenését és érzetét használó rendszer „megjelenést és érzetet”, vagy a platformok közötti megjelenést és érzetet („Java Look and Feel”), amely minden platformon ugyanúgy néz ki. A Swing azonban AWT-t használ a natív ablakrendszerrel való interakcióhoz.

Építészet

Az AWT két API szintet biztosít :

Az AWT emellett magas szintű funkciókat is biztosít az alkalmazásokhoz:

Sem az AWT, sem a Swing nem eleve cérnabiztos . Így a grafikus felhasználói felületet frissítő vagy eseményeket kezelő kódnak az eseményelosztó szálon ( EDT kell futnia .  Ennek elmulasztása holtponthoz vagy versenyhelyzethez vezethet. A probléma megoldására egy segédprogram-osztály lehetővé teszi az alkalmazások számára, hogy "nehéz" interfész eseménykezelőket hajtsanak végre az eseményfeldolgozási szálon. SwingWorker

AWT és Swing komponensek keverése

A Java 6#Java SE 6 Update 10 -től kezdve a Swing összetevők és az alapvető AWT widgetek keverésének gyakran voltak nemkívánatos mellékhatásai, az AWT widgetek a Swing widgetek felett jelentek meg, függetlenül azok halmozási sorrendjétől . A probléma oka az, hogy a két widget eszközkészlet renderelési architektúrája nagyon eltérő, annak ellenére, hogy a Swing kölcsönvette az AWT legfelső szintű nehézsúlyú konténereit [1] .

A Java 6#Java SE 6 Update 12 -től kezdve lehetőség van a Swing és AWT widgetek keverésére halmozási sorrendi problémák nélkül.

Megvalósítás

Mivel az AWT egy híd az alapul szolgáló natív felhasználói felülethez, új operációs rendszeren való megvalósítása nagy munka lehet, főleg olyan widgetek esetében, amelyekhez minden egyes AWT widgethez a nulláról kell natív társakat fejleszteni.

A Java fejlesztésével egy időben elkezdődött a Caciocavallo projekt fejlesztése . Célja, hogy OpenJDK -n alapuló Java API-kat biztosítson, amelyek megkönnyítik az AWT implementációk írását új operációs rendszerekhez [2] . A Java2D [3] a felület felépítésére szolgál . Az OpenJDK 7 óta minden szükséges módosítás benne van a JDK-ban [4] .

Lásd még

Jegyzetek

  1. Fowler, Amy Nehéz és könnyű alkatrészek keverése (downlink) . Sun Microsystems (1994). Letöltve: 2008. december 17. Az eredetiből archiválva : 2012. május 1.. 
  2. Torre, Mario VÉGSŐ JAVASLAT: Hordozható grafikus felhasználói felület (downlink) (2008. március 2.). Letöltve: 2008. szeptember 7. Az eredetiből archiválva : 2012. május 1.. 
  3. Kennke, Roman Cacio Swing AWT társai (2008. szeptember 3.). Letöltve: 2013. április 21. Az eredetiből archiválva : 2013. április 29..
  4. Mennyit toltak felfelé? (nem elérhető link) . openjdk.java.net (2009. szeptember 20.). — « Nincs többé szükséged ezekre a javításokra, a legújabb FontManager push segítségével most már minden upstream, úgyhogy csak használja a Cacio repót, az teljesen önálló. ". Letöltve: 2010. március 7. Az eredetiből archiválva : 2012. május 1.. 

Linkek