From Wikipedia, the free encyclopedia
Abstract Window Toolkit (AWT), Java լեզվի գրաֆիկական ինտերֆեյսի (Widget Toolkit) բնօրինակ հարթակից անկախ պատուհանների գրադարանն է։ AWT-ն այժմ Java Foundation Classes-ի (JFC) մի մասն է՝ ստանդարտ API՝ Java ծրագրում GUI-ի ներդրման համար։
AWT-ը նաև ստանդարտ GUI գրադարան է Java ME որոշ պրոֆիլների համար։ Օրինակ, Միացված սարքի կազմաձևման պրոֆիլները պահանջում են Java-ի գործարկման ժամանակը բջջային հեռախոսներում՝ AWT-ին աջակցելու համար։
Երբ 1995 թվականին Sun Microsystems-ը առաջին անգամ թողարկեց Java-ն, AWT վիդջեթները աբստրակցիայի բարակ շերտ էին ապահովում հիմնական նեյթիվ ինտերֆեյսի վրա։ Օրինակ, AWT վանդակի ստեղծումը հանգեցնում է նրան, որ AWT-ն ուղղակիորեն կանչում է ավելի ցածր մակարդակի տեղական ենթածրագր, որը ստեղծում է վանդակը։ Այնուամենայնիվ, Microsoft Windows-ի վանդակը նույնը չէ, ինչ վանդակը Mac OS-ի կամ Unix-ի տարբեր համերի վրա։ Որոշ մշակողներ նախընտրում են այս մոդելը, քանի որ այն ապահովում է համապատասխանության բարձր աստիճան հիմնական պատուհանների գործիքակազմի հետ և անխափան ինտեգրում նեյթիվ հավելվածներին։ Այլ կերպ ասած, AWT-ի միջոցով գրված GUI ծրագիրը Windows-ով աշխատելիս նման է Microsoft Windows-ի նեյթիվ հավելվածին, և միևնույն ժամանակ նման է բնօրինակ Apple Macintosh հավելվածին, երբ աշխատում է Mac-ով և այլն, այնուամենայնիվ, որոշ մշակողներ չեն սիրում այս մոդելը, քանի որ նրանք նախընտրում են, որ իրենց հավելվածները բոլոր հարթակներում նույն տեսքը ունենան։
J2SE 1.2-ում AWT վիջեթները հիմնականում փոխարինվել են Swing-ի վիջեթներով։ Օգտվողի միջերեսի տարրերի ավելի հարուստ հավաքածու տրամադրելուց բացի, Swing-ը նկարում է իր սեփական վիջեթները (օգտագործելով Java 2D՝ տեղական գրաֆիկական ցածր մակարդակի ենթահամակարգի ռեժիմներ կանչելու համար)՝ օպերացիոն համակարգի բարձր մակարդակի ինտերֆեյսի մոդուլին ապավինելու փոխարեն։ Swing-ը հնարավորություն է տալիս օգտագործել կամ «look and fell» համակարգ, որն օգտագործում է հարթակի նեյթիվ «look and fell», կամ միջպլատֆորմային տեսքն ու զգացումը («Java Look and Feel»), որը նույն տեսքն ունի բոլոր հարթակներում։ Այնուամենայնիվ, Swing-ն օգտագործում է AWT-ն՝ նեյթիվ պատուհանների համակարգի հետ փոխգործակցության համար։
AWT-ն ապահովում է API-ի երկու մակարդակ.
java.awt.datatransfer փաթեթը՝
սեղմատախտակի և Drag and Drop-ի հետ օգտագործելու համար։AWT-ն նաև տրամադրում է հավելվածներ որոշ բարձր մակարդակի ֆունկցիոնալությամբ.
Ո՛չ AWT-ն, ո՛չ Swing-ը բնականաբար անվտանգ չեն թելերի վրա։ Այսպիսով, կոդը, որը թարմացնում է GUI-ը կամ մշակում իրադարձությունները, պետք է կատարվի իրադարձությունների դիսպետչերական շղթայի վրա[en] (անգլ.՝ event dispatching thread, EDT)։ Դա չկատարելը կարող է հանգեցնել փակուղու կամ մրցավազքի վիճակի։ Այս խնդիրը լուծելու համարSwingWorker
դասը թույլ է տալիս հավելվածներին գործարկել «ծանր» ինտերֆեյսի իրադարձությունների մշակիչներ իրադարձությունների մշակման շղթայում։
Սկսած Java 6#Java SE 6 Update 10-ից, Swing բաղադրիչների և հիմնական AWT վիջեթների խառնումը հաճախ ունենում էր անցանկալի կողմնակի ազդեցություններ, ընդ որում AWT վիդջեթները հայտնվում էին Swing վիդջեթների վերևում՝ անկախ դրանց հատուկ դասավորության կարգից։ Այս խնդիրը պայմանավորված է նրանով, որ երկու վիդջեթների գործիքակազմերի մատուցման ճարտարապետությունը շատ տարբեր է, չնայած Swing-ի կողմից AWT-ից վերին մակարդակի ծանր քաշային բեռնարկղերի փոխառությունը[1]։
Java 6#Java SE 6 Update 12-ից սկսած՝ հնարավոր է խառնել Swing և AWT վիջեթները՝ առանց պատվերի հետ կապված խնդիրների։
Քանի որ AWT-ն կամուրջ է դեպի հիմքում ընկած նեյթիվ օգտատիրոջ միջերեսը, դրա ներդրումը նոր օպերացիոն համակարգում կարող է մեծ աշխատանք լինել, հիմնականում մի շարք վիջեթների համար, որոնք պահանջում են նեյթիվ հասակակիցների մշակումը զրոյից յուրաքանչյուր AWT վիդջեթի համար։
Java-ի զարգացմանը զուգահեռ սկսեց մշակվել Caciocavallo նախագիծը։ Դրա նպատակն է տրամադրել Java API-ներ, որոնք հիմնված են OpenJDK-ի վրա՝ հեշտացնելու համար նոր օպերացիոն համակարգերի համար AWT-ի ներդրումը գրելը[2]։ Java2D-ն օգտագործվում է ինտերֆեյսի կառուցման համար[3]։ Բոլոր անհրաժեշտ փոփոխությունները ներառված են JDK-ում OpenJDK 7-ից սկսած[4]։
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.