Swing – aplikacijų programavimo sąsaja grafinei vartotojo sąsajai sukurti. Swing numato įvairius galimus vartotojo sąsajos komponentus, tokius kaip mygtukai, teksto laukai, lentelės, medžiai ir kitus. Swing naudojamas java programose. Jos išpildymai paprastai taip pat didele dalimi yra parašyti šia kalba. Tik Swing komponentus naudojanti programa turėtų vienodai atrodyti nepriklausomai nuo to, kokioje operacinėje sistemoje ji vykdoma.
![]() |
Šiam straipsniui ar jo daliai trūksta išnašų į patikimus šaltinius. Jūs galite padėti Vikipedijai pridėdami tinkamas išnašas su šaltiniais. |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/0/05/GC_SwingDemo.jpg/640px-GC_SwingDemo.jpg)
Look & Feel
Swing numato galimybę nesunkiai kurti labai įvairiai atrodančias to paties komponento versijas. Tam visi svarbesni komponentai susideda iš tarpusavyje sujungtų pagrindinio ir kuriant objektą automatiškai sukuriamo ir prijungiamo pagalbinio (klasės vardas baigiasi priesaga UI) objektų. Vartotojo programa komponentą pasieka naudodamasi tik pagrindinio nario metodais. Tačiau šis pagrindinis objektas visą grafinį atvaizdavimą bei atsakus į pelės bei klaviatūros veiksmus deleguoja pagalbiniam UI objektui. Pakeičiant šį UI objektą (Swing API numato būdus tai padaryti), gali pasikeisti komponento vaizdas bei daugelis jo savybių. Kai kurios firmos kuria specifinius Look & Feel kaip savo prekinį ženklą. Swing išpildymuose neretai būna keletas galimų standartinių Look & Feel, kuriuos galima keisti net ir programai tebeveikiant. Kuriant savo UI objektus, juos galima kildinti iš standartinių UI klasių, naujai perrašant tik tuos metodus, kurie turi veikti skirtingai.
Modeliai
Pagrindinis straipsnis – Modelis (objektinis programavimas)
Swing sistemoje plačiau naudojama modelio samprata. Pavyzdžiui, kuriant lentelę, programuotojas sukuria ir su Swing lentele susieja jos modelį. Modelis turi metodus lentelės eilučiu bei stulpelių skaičiui gauti bei lentelės nario reikšmei nurodytoje vietoje rasti. Jei ekrane rodoma labai didelė lentelė, modelio bus paklausta tik apie matomų langelių reikšmes. Tai gali būti efektyvu jei langelio reikšmės radimas užtrunka (tarkim, reikia susisiekti su duomenų bazės serveriu). Jei toks lankstumas nereikalingas, visi komponentai turi standartinius modelius, kuriuos galima naudoti pagal nutylėjimą.
Išpildymo efektyvumas
Gerai veikiantį Swing išpildymą parašyti palyginus sunku, ir net paties autoriaus (Sun) versijos praeityje neretai susilaukdavo kritikos dėl nepamatuoto atminties naudojimo ir lėto veikimo. Tačiau su kiekviena nauja versija Swing išpildymų efektyvumas gerėja.
Išpildymai
- Swing API autorius, Sun microsystems, pateikia šio standarto išpildymus įvairioms operacinėms sistemoms.
- GNU projektas (GNU Classpath) pateikia nepriklausomai parašytą Swing API išpildymą, kuris nėra susietas su konkrečia operacine sistema ir dažniausiai aptinkamas GNU/Linux arba įvairiose specializuotose aplinkose.