B npexonara rema nsxcnnxme xax ce paorn c UDP n Multicast coxern, a cmo raxa n cpecrnara xonro nn ana nnar]opmara Java sa ocrn o URL pecypcn. C rona npnxnmunxme npnara uacr or namnx saouen xypc no nporpamnpane na Java sa Hnrepner paora cc coxern. Hpecron nn a ce sanosnaem c nropara uacr na xypca paspaorxa na Java annern.
1AVA anne1n o npen ecernna ronnn eme cnnno pasnpocrpaneno cxnamanero, ue esnxr Java cnyxn enncrneno sa csanane na annern. Ho rona npeme rona cxnamane eme n ronxma crenen npannnno, samoro Java npnonauanno eme nnannpan n rouno sa rona n nsnonsnanero my sa pyrn nenn sanouna no-xcno. Pasnnrnero na esnxa npes nocnennre 5-6 ronnn, oaue, xopenno npomenn ponxra my n cnera na nporpamnpanero n Java crana ena or na-nonynxpnnre nnar]opmn sa paspaorxa na xopnoparnnnn co]ryepnn cncremn. Annernre, nnpexn ue neue ne saemar nenrpanna uacr n Java nnar]opmara, nce ome cn ocranar ena nnrepecna nacoxa n Hnrepner nporpamnpanero, xoxro cn crpyna a pasrneame. Hpen a npncrnnm xm noneue erann, rpxna a cn nsxcnnm xaxno e Java anner. Annerr e xomnnnnpana nporpama na Java, xoxro ce nrpaxa xaro oexr n onxnonena Web-crpannna n ce nsnnnxna or Web-payspa no npeme na pasrnexanero na rasn crpannna. Annernre ce nrpaxar n Web-crpannnnre no naunn mnoro nooen na nrpaxanero na xaprnnxn, no sa pasnnxa or rxx, re ne ca npocro rpa]nunn nsopaxennx, a nporpamn, xonro nsnonsnar npanornnara onacr, xoxro poysepr nm e an, sa rpa]nunnx cn norpenrencxn nnrep]ec. Annernre npnrexanar nourn nxnara mom xoxro nn ana Java nnar]opmara, no c nsnecrnn orpannuennx, npensnnxann rnanno or copaxennx sa cnrypnocr. 3a a ce ocnrypn esonacnocrra na norpenrenx, na annernre e nosnoneno a nsnpmnar camo onepannn, xonro ne morar a ocmecrnxr ocrn o norpenrencxara nn]opmannxra na mamnnara, na xoxro ce nsnnnxnar. Annernre npecrannxnar xomnnnnpana Java nporpama nn nn na .class ]an nnn cnxynnocr or xomnnnnpann Java xnacone, sanncann n .jar ]an. Kaxro snaem ncnuxn Java nporpamn ce nsnnnxnar or Java nnpryanna mamnna (JVM) n sarona payspnre, xonro nopxar annern nmar nrpaena n cee cn nnn onnnnrenno nncrannpana nnpryanna mamnna. Hpn ornapxnero na HTML oxymenr c annern, paysepr sapexa Java nnpryannara cn mamnna n craprnpa annernre n nex. B noneuero cnyuan Java annernre nacnexnar xnaca java.applet.Applet n npnnoxpnnar meronre my sa nnnnnannsannx n sa nsopasxnane na expana cornerno init() n paint(). B meroa paint() annerr nsopasxna rpa]nuno na expana rexymoro cn ccroxnne nsnonsnaxn cranaprnnre cpecrna na Java sa csanane na rpa]nuen norpenrencxn nnrep]ec AWT (Abstract Window Toolkit). Tesn cpecrna ce namnpar n naxera java.awt n me ar pasrneann no-xcno. a pasrneame enn cncem npocr anner: import java.applet.Applet; import java.awt.Graphics;
public class HelloWorldApplet extends Applet { public void paint(Graphics g) { g.drawString("Hello world!", 50, 25); } } B rosn npnmep enncrnenoro, xoero npann annerr, e n meroa cn sa nsopasxnane na expana a ueprae rexcr n onacrra, xoxro my e aena or payspa na nosnnnx (50, 25) c mpn]ra no nopasnpane. Csananero na annera HelloWorldApplet.java n xomnnnnpanero my o .class ]an ne e ocraruno sa a moxe ro a ce nsnnnn. 3a pasnnxa or nopmannnre Java nporpamn annernre ne e sanxnrenno a nmar main() mero. 3a a nnnm pesynrara or namnx anner rpxna a nanpannm Web-crpannna, n xoxro a ro nmxnem xaro oexr. Ero enn npnmep xax crana rona: <html><body> <p align="center">This is the applet:<br><br> <applet code="HelloWorldApplet.class" width="150" height="50"> </applet></p> </body></html> Hsnonsnaxme HTML rara <applet>, n xoro saaoxme nmero na xnaca, xoro ncxame a nmxnem xaro oexr, xaxro n pasmepnre na onacrra or Web-crpannnara, xoxro my ce npeocranx. Axo sannmem rosn HTML xo nn ]ana index.html n ornopnm rosn ]an c Internet Explorer, me nonyunm pesynrar nooen na cnennx:
pyr naunn a nsnnnnm annera nn ana nporpamara appletviewer, xoxro e nxnmuena xm cranaprnara nncranannx na JDK. C nex cmo moxem a nsnnnxname annern, no sa pasnnxa or cranaprnnx paysp, appletviewer ana noneue npana na annera n paorn c rexymara nepcnx na JDK. Karo napamerp appletviewer npnema nme na HTML ]an, xoro cpxa anner. Bnpocr c nepcnnre na JDK n cnmecrnmocrra ocranxme sa no-nararx, a cera nexa nannesem n noneue erann ornocno rona xax ce csanar annern. Knacr java.applet.Applet e ason xnac sa ncnuxn annern n e nacnennx na java.awt.Panel. Cneonarenno ro npecrannxna AWT xonrenep n moxe a ce nsnonsna sa nocranxne na pasnnunn AWT xomnonenrn c nen nsrpaxane na norpenrencxn nnrep]ec. Ocnen sa rona, ro moxe a ce nsnonsna cmo n sa npexrno pncynane cc cpecrnara na AWT, xaxro rona e nanpaneno n ropnnx npnmep. Knacr java.applet.Applet ana asonara ]ynxnnonannocr na annernre n npeocranx na nacnennnnre cn meron sa nsanmoecrnne c paysepa n nnmnnx cnxr. a npocnenm xnsnennx nnxn na enn anner xaxno ce cnyuna or momenra na sapexane na HTML-crpannnara c annera o momenra, n xoro ce sarnopn paysepr nnn ce npemnne na pyra crpannna. Hpnonauanno paysepr uere HTML oxymenra n namnpa <applet> raronere. 3a ncexn or rxx namnpa n sapexa xnac ]ana, xoro e yxasan, nncrannnpa ro n Java nnpryannara cn mamnna n sanouna a ro nsnnnxna. Hsnnnennero na anner ce ccron n cnenoro: Hsnnxna ce init() meroa. Hsnnxna ce start() meroa. oxaro annerr paorn, paysepr my noana ncnuxn cnrnx, npenasnauenn sa nero n ro ononecrxna, xoraro e neoxonmo a ce npeueprae nopan nxxaxna npnunna. Cnrnxra, ornacxmn ce o annera, xaro xnnxnane c mnmxara, narncxane na xnannm n p. ce noanar na meroa handleEvent(), xoro nsnpmna neoxonmoro re a ce opaorxr or AWT xonrponara, sa xoxro ca npenasnauenn. Cnrnxra sa npeuepranane nsnnxnar xoraro ce npomenn nnnmara uacr or annera, nanpnmep npn cxponnpane na oxymenra nnn npn sacnuane na annera c pyr nposopen. Opaorunxr na resn cnrnx npensnnxna nsnnxnane na meroa paint(), npn nsnnnennero na xoro annerr e nxen a ce npeueprae. Hpn npnxnmunane na nsnnnennero na annera, paysepr nsnnxna nocneonarenno meronre stop() n destroy(). Meror init() ce nsnnxna enoxparno cne xaro annerr e nncrannnpan, r.e. e csaen xaro oexr nn nnpryannara mamnna na payspa. B nero annerr moxe a csae xonrponnre or norpenrencxnx cn nnrep]ec, a nanpann nxxon nnnnnannsannn n ncnuxo ocranano, xoero rpxna a ce nsnnnn enoxparno, npen annerr a e craprnpan. Meror start() ce nnxa cne nnnnnannsannxra n cne pecraprnpane na annera. 3a pasnnxa or init(), meror start() moxe a ce nsnnxa noneue or nenx. Meror stop() ce nsnnxna, xoraro paysepr nanycxa crpannnara, n xoxro e sapeen annera. Cne stop() ncnuxn nnmxn na annera mnnanar n ccroxnne na naysa. Hpn npmane oparno n crpannnara c annera, ce nnxa start(). Tpxna a orenexnm ue noneuero payspn peannsnpar no pasnnuen start() n stop() meronre n sarona nsnonsnanero nm rpxna a crana nnnmarenno, a npn nsmoxnocr a ce nsxrna. Meror destroy() ce nsnnxna enoxparno npen annerr a ce ynnmoxn or paysepa. AWT npecrannxna nnar]opmeno-nesanncnma nnnorexa or xnacone, xoxro nosnonxna csanane na rpa]nuen norpenrencxn nnrep]ec c Java n ana nxnocren xomnonenrno-opnenrnpan Iramework sa csanane na npnnoxennx, xonro nsnonsnar rpa]nxa n nsanmoecrnar axrnnno c norpenrenx. Tosn Iramework nn npeocranx cranapren naunn sa paora c rpa]nunn xomnonenrn, xaro yronn, rexcronn nonera, xaprnnxn, rexcr n r.n., a cmo n mexannsm sa opaorxa na cnrnxra nsnnxnann n pesynrar or nsanmoecrnnero mexy norpenrenx n nporpamara, xaro nanpnmep mpaxnane c mnmxara, nxo or xnannarypara n r.n. Fnnnorexara AWT e ronxona ronxma, ue sa noponoro onncanne e neoxonmo mnoro noneue npocrpancrno or rona, c xoero pasnonarame. 3arona es a nperennpame sa nnnora me nanpannm camo eno xparxo uacrnuno nneenne n AWT n ro rnanno sa a nsxcnnm rona, xoero nn e neoxonmo sa a nnmem annern. Hopono onncanne na nnnorexara moxe a ce namepn na cara na xypca 'Hnrepner nporpamnpane c Java http://inetjava.sourceIorge.net, a cmo n n oxymenrannxra na JDK. Koopnnarnara cncrema na anner c pasmepn sizeX n sizeY sanouna or nosnnnx (0,0), xoxro orronapx na ropnnx my nxn rn n sanpmna n nosnnnx (sizeX-1, sizeY-1), xoxro orronapx na onnnx my ecen rn. Hsopasxnanero na rpa]nunn oexrn crana upes xnaca java.awt.Graphics, oexr or xoro ce noana na paint() meroa na annera. Bcexn Graphics oexr nma cox cocrnena xoopnnarna cncrema n ncexn AWT rpa]nuen xomnonenr nma cno cocrnen Graphics oexr, upes xoro peannsnpa nnsyannsannxra cn. Knacr Graphics nn ana meron sa ueprane na ocnonnnre rpa]nunn oexrn, xaro nnnnn, npanornnnnn, ennncn, sannnenn mnorornnnnn, rexcr c pasnnunn mpn]rone n mnoro pyrn. Onncanne na meronte, c xonro ce uepraxr resn oexrn (drawLine(), drawRect(), fillRect(), clearRect(), drawOval(), fillOval(), drawArc(), fillArc(), drawPolygon(), fillPolygon() n r.n.) moxe a ce namepn n oxymenrannxra. Ocnen npexrnoro ueprane na reomerpnunn ]nrypn, AWT nosnonxna n nsopasxnane na xaprnnxn, sapaenn or GIF nnn JPEG ]an. 3a nenra ce nsnonsna xnaca java.awt.Image n meroa na xnaca Graphics drawImage(), xoro nma nxxonxo napnanra c pasnnunn nxonn napamerpn. Ha-necnnxr naunn sa sapexane na xaprnnxa n Image oexr ce ana or meroa getImage() na xnaca Applet, xoro npnema URL xaro napamerp. Ero enn npnmep xax moxem a sapenm xaprnnxa: URL imageURL = new URL( "http://www.nakov.com/images/dot.jpg"); java.awt.Image img = this.getImage(imageURL); 3a a nauepraem npxy annera sapeenara xaprnnxa moxem a nsnonsnane cnennx xo: public void paint(Graphics g) { g.drawImage(img, 20, 10, this); } Axo ncxame a nauepraem xaprnnxara c npomenenn pasmepn, moxem a nsnonsname ornono meroa drawImage(), no c pyrn napamerpn: g.drawImage(img, 0, 0, img.getWidth(this)/4, img.getHeight(this)/4, this); Bnnmarennnxr unraren nepoxrno e saenxsan, ue meror drawImage() nma enn napamerp, sa xoro n namnre npnmepn aname cronocr this. Tona cncem ne e cnyuano n ce oxcnxna c apxnrexrypara na AWT n naunna, no xoro ce paorn c xaprnnxn. Meror drawImage() npnema xaro nocneen napamerp oexr, xoro peannsnpa nnrep]eca ImageObserver. 3apexanero na xaprnnxa n AWT nnnarn e acnnxponno, r.e. nsnpmna ce napanenno c paorara na nporpamara. Tona e cncem oocnonano, xaro ce nma npenn, ue sapexanero na xaprnnxa or Hnrepner ornema nsnecrno npeme, a nporpamara moxe a ro nsnonsna sa pyrn nenn, nmecro a uaxa. Ho nex drawImage() ne nsuaxna xaprnnxara a e sapeena n rorana a x naueprae, a ueprae camo rasn uacr or nex, xoxro neue e sapeena n nenara npma ynpannennero na nsnnxnamnx mero. Koraro xaprnnxara ce sapen nannno, ce nsnnxna meror imageUpdate() na nnrep]eca ImageObserver, xoro rpxna a opaorn cnryannxra no noxoxm naunn. Onxnoneno peannsannxra na meroa imageUpdate() npeueprana xaprnnxara. Knacr java.awt.Component, xoro e npaponren na xnaca java.applet.Applet peannsnpa nnrep]ecr ImageObserver n n meroa cn imageUpdate() npeueprana onacrra or expana, xoxro e oxnanara or xaprnnxara, xoxro ce e sapenna nannno. Hsnonsnaxn rasn asona ]ynxnnonannocr na xnaca Applet, moxem nnnarn, xoraro sapexame xaprnnxn or anner, a noaname sa ImageObserver camnx anner, r.e. oexra this. a pasrneame enn nxnocren npnmep sa anner, xoro nsnonsna xaprnnxn n peannsnpa npocra annmannx. a cn nocrannm sa saaua nanpanara na anner, n xoro ena ronxa nocroxnno ce nnxn n ce orncxna n crennre na annera npn yap. Eno nsmoxno pemenne na saauara e cnenoro: import java.awt.*; import java.applet.*; import java.net.URL;
public class BallApplet extends Applet implements Runnable {
public static final int SPEED = 20; Image ballImg; int x, y, px, py; Thread animateThread = null; Image bufImg; Graphics bufGr;
public void paint(Graphics g) { if (animateThread != null) { // Paint in the buffer bufGr.fillRect(0, 0, getSize().width, getSize().height); bufGr.drawImage(ballImg, x, y, this); // Move the buffer to the screen g.drawImage(bufImg, 0, 0, this); } }
public void start() { if (animateThread == null) { animateThread = new Thread(this); animateThread.start(); } }
public void stop() { animateThread = null; }
public void run() { // Wait for the image to load completely MediaTracker tracker = new MediaTracker(this); tracker.addImage(ballImg,0); try { tracker.waitForAll(); } catch (Exception ex) {} // Calculate the animation area size int maxX = this.getSize().width - ballImg.getWidth(this); int maxY = this.getSize().height - ballImg.getHeight(this); // Animate until interrupt is requested while (animateThread != null) { if ((x > maxX) || (x < 0)) px = -px; x = x + px; if ((y > maxY) || (y < 0)) py = -py; y = y + py; try { Thread.sleep(SPEED); } catch (Exception ex) {} // Redraw the applet contents paint(getGraphics()); } } } Hexra sa paorara na annera e cnenara: Hpn nnnnnannsannx annerr sapexa xaprnnxara c ronxara n csana enn oexr Image, xoro me nsnonsna sa y]ep. Hpn craprnpane na annera ce csana ena nnmxa, xoxro ce rpnxn sa annmannxra. Henara ponx e a npomenx xoopnnarnre x n y na ronxara crnacno rexymara nocoxa na nnxenne, a cmenx nocoxara npn yap n crena n cne ncxxa npomxna na xoopnnarnre na ronxara a npeueprana annera. Hpeueprananero na annera paorn cc cnennanen y]ep. Tosn y]ep ce nsnonsna sa a ce nserne npemnrnanero n a ce nonyun nancrnna nnanno nnxenne. Bcn ncxxo npeuepranane na annera y]epr ce nsuncrna c fillRect(), cne rona n nero ce naueprana ronxara na rexymara nosnnnx n cne rona na expana ce nsopasxna cpxannero na rosn y]ep. Tasn rexnnxa sa nsxrnane na npemnrnanero npn csanane na annmannx ce napnua nono y]epnpane (double buIIering). 3a peannsannxra ce csana oexr or xnaca Image bufImg n ce paorn upes neronnx Graphics oexr bufGr. Bmecro a ce pncyna npexrno npxy annera, ce pncyna n y]epa n roronnx xap or y]epa ce npexnpnx n annera. Hpn nsnnxnane na stop() meroa annerr cnnpa nnmxara sa annmannx, a npn start() x csana n x craprnpa. Hmero na ]ana, xoro cpxa xaprnnxara ce saana xaro napamerp na annera n ce nsema c meroa getParameter(). Hapamerpnre na annernre cnyxar sa saanane na pasnnunn nacrpoxn es a e neoxonma npexomnnnannx, xoero ce nanara axo resn nacrpoxn ca saaenn xaro xoncranrn. 3a saananero nm nma cnennanen rar, xoro ce nnara n raxa <applet> rara <param>. Ero enn npnmepen HTML xo, xoro craprnpa namnx anner n saana sa napamerpa nme na xaprnnxa imgName cronocrra ball.jpg: <html> <head><title>Nakov Ball Applet</title></head> <body> <applet code="BallApplet.class" width="200" height="150"> <param name="imgName" value="ball.jpg"> </applet> </body> </html> B nnnnnannsannonnara cn uacr annerr nsnma napamerpa imgName n sapexa xaprnnxara c rona nme or npexropnxra, or xoxro e sapeen annerr. URL, couemo xm rasn npexropnx moxe a ce nonyun upes meroa getCodeBase(). Taxn e npannnnnxr naunn sa nsnnnuane na pecypc or anner ne upes aconmren URL, a upes penarnnen URL cnpxmo npexropnxra, or xoxro e sapeen annerr. Cne xaro e nsnnxan meror sa sapexane na xaprnnxa, rx e sanounana a ce nsnnnua or saaennx URL, a npes rona npeme annerr csana xaprnnxa-y]ep sa nennre na annmannxra. Hpn nsnnxnane na start() meroa annerr csana nnmxara sa annmannx n x craprnpa. Hpn craprnpane nnmxara npno nsuaxna xaprnnxara c ronxara ballImg a ce sapen nannno. 3a nenra ce nsnonsna xnaca MediaTracker, upes xoro moxe a ce npocnen ccroxnnero na sanounann a ce sapexar xaprnnxn. a cn npnnomnnm ue paorara c xaprnnxn n AWT e acnnxponna! Cne xaro xaprnnxara e nannno sapeena, moxem a cme cnrypnn, ue axo ce onnrame a nsemem pasmepnre, onepannxra me e ycnemna. Tesn pasmepn, xaxro n pasmepnre na annera nsnonsname sa nsuncnxnane na nonero, n xoero ronxara moxe a ce nnxn, raxa ue a ne nsnnsa or annera. Tona e npanornnara onacr (0, 0) (maxX, maxY). Camara annmannx npecrannxna enn nnxn, n xoro ce nsuncnxnar nonnre xoopnnarn na ronxara n annerr ce npeueprana c nsnnxnane na paint(getGraphics()). Mexy ncexn na xapa or annmannxra ce nsuaxna nxxaxno npeme SPEED c nen ronxara a ne ce nnxn npexaneno pso n a ce nnxn c npnnnsnrenno enaxna cxopocr na pasnnunn xomnmrpn. Hpn cnnpane na annera c meroa stop() na npomennnnara animateThread, xoxro coun xm nnmxara sa annmannx ce npncnoxna null n rona e snax sa run() meroa na rasn nnmxa, ue rpxna a npnxnmun paora. 3arona n nnxna, n xoro ce nnxn ronxara, cronocrra na animateThread ce cnen nenpexcnaro. Taxn e npenopunrennnxr naunn sa npexcnane na paorara na nnmxa. Ero n pasynrarr or namnx anner, nnxn npes Internet Explorer:
3a a nsrnexa ope e neoxonmo xaprnnxara, xoxro npecrannxna ronxara (ball.jpg) a e no- manxa or pasmepnre na annera n a e na uepen ]on. Hpn paspaorxara na annern n npn recrnanero nm c Internet Explorer nnn pyr Web-paysp, rpxna a nmame npenn nxxon nema. Honeuero payspn nsnonsnar xemnpane na pasnnunn oexrn or Web-crpannnnre, nanpnmep xaprnnxn, crnnone n p. sa nocrnrane na no-ronxma cxopocr npn sapexane na HTML oxymenr. Kemnpanero ce nsnonsna n sa annernre, nopan xoero rpxna a ce nnnmana. Tpxna a ce snae, ue sanncnanero na nona nepcnx na annera n narncxane na yrona 'ReIresh ne rapanrnpa nsnnnennero na nonara nepnx. Hpn Internet Explorer cnrypen naunn sa sapexanero na nocnenara nepcnx na annera e narncxanero na CtrlF5 nnn CtrlReIresh, no npn pyrn payspn xnannmnnre xomnnannn ca pyrn. Ha-cnrypno e sarnapxne na payspa n craprnpane ornono. Camo raxa moxem a cme cnrypnn, ue nocnenara npomxna n xoa ce e orpasnna na annera, n ro npn ycnonne, ue ne cme sapannnn a npexomnnnnpame. pyra naxna ocoenocr na payspnre e ue noneuero nopxar mnoro crapn nepcnn na JDK. Hanpnmep Internet Explorer 4.0, 5.0 n 5.5 nopxar camo JDK 1.1. Honeuero nepcnn na Netscape Navigator cmo. JDK 1.3.1 ce nopxa cne nspnnane na cnennanen plig-in or cara na Sun. Hopan nomnre ornomennx mexy MicrosoIt n Sun, Inetrnet Explorer 6.0 neue ne nopxa cranaprno annern, a camo cne onnnnrenno nncrannpnane na Java plug-in. He e xcno samo, no Netscape 6.0 cmo ne nopxa cranaprno Java annern n ce nyxae or plug-in. Hopan nsrxnarnre nponemn cc cnmecrnmocrra xoraro nnmem annern rpxna a nsnonsname JDK 1.1. B npornnen cnyua pncxr annerr a ne paorn na mamnnara na xnnenra ne e manx. Honeuero xnacone n meron, xonro nxa nn norpxnann npn nncane na annern rn nma n JDK 1.1, raxa ue nsnonsnanero na rasn nepcnx ne nn orpannuana cepnosno. Tpxna a ce copasxname, ue nmenara na nxxon meron n pasnnunnre nepcnn na JDK ca pasnnunn, no onxnoneno nma cornercrnne n cnmecrnmocr orony narope. Hanpnmep n java.awt.Component or JDK 1.2 e nneen mero getWidth(), a n JDK 1.1 nsemanero na mnpounnara na xomnonenr crana c getSize().width. Hpn nsnonsnanero na nnncnam mero na nxxo xnac, nnpryannara mamnna na paysepa npensnnxna nsxnmuenne. Hsxnmuennxra, xonro nsnnxnar n annernre, xaxro n ncnuxo, orneuarano upes System.out.println() moxem a nnnm n Java xonsonara na payspa. B noneuero payspn rx e ocrnna or menmro. B Internet Explorer Java xonsonara ce noxnxna n menmro 'View camo cne xaro ce paspemn or onnnnre (Internet Options , Advanced , MicrosoIt VM , Java console enabled) n ce pecraprnpa paysepr. Hamnpanero na nponem n anner es Java xonsonara e nemncnnmo, raxa ue xoraro paspaornare annern n nemo ne paorn, nnnarn nornexare n xonsonara. Tnnnuen e cnyuaxr, n xoro n cpeara sa paspaorxa (nanpnmep Jbuilder nnn IDEA) annernre paorxr, a n paysepa ne ncxar. Hpnunnnre ca ne pasnnxa nn nepcnnre na JDK n orpannuennre npana, xonro ce anar na annernre. Onxnoneno appletviewer nnn cpeara sa paspaorxa craprnpar annernre c noneue npana, orxonxoro enn paysp n nm an n c JDK, pasnnuno or 1.1 n sarona ce nonyuana necnmecrnmocr. Hpen a nsxcnnm cnryannxra c npanara na annernre, rpxna a orenexnm, ue n nonnre nepcnn na JDK cmecrnyna pasmnpenne na nnnorexara AWT, xoero ce napnua Swing n ce namnpa n naxera javax.swing. Hsnonsnanero na Swing n annern ne ce npenopuna, samoro mnoro manxo payspn nopxar Swing cranaprno. (c.eoea npoo.reuue e c.eoeauu opo)