Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00529 010059 11029935 na godz. na dobę w sumie
Java w szkole - książka
Java w szkole - książka
Autor: Liczba stron: 400
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-188-5 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> java - programowanie
Porównaj ceny (książka, ebook, audiobook).
Nie ulega wątpliwości, że Java już wkrótce stanie się powszechnym językiem programowania, nauczanym nie tylko w uczelniach akademickich, ale również w szkołach średnich. W krajach wysoko rozwiniętych, a zwłaszcza w USA, Java wyparła już C i Pascala, pozostawiając C++ tylko wyspecjalizowaną dziedzinę programowania systemowego. We wszystkich wiodących uniwersytetach przestawiono na Javę nie tylko naukę programowania, ale i wiele przedmiotów wyspecjalizowanych, w tym bazy danych, grafikę, multimedia i struktury danych. W świetle tego powstaje pytanie, czy warto zaczynać naukę programowania od innego języka niż Java. Odpowiedzią na to jest niniejsza książka. Ma ona przekonać do tego, że nawet uczniowie i początkujący studenci mogą bez trudu nauczyć się programować w Javie. Zadanie to ułatwia specjalna biblioteka, która programowanie w Javie czyni łatwym i przyjemnym. Zarówno biblioteka, jak i wszystkie omówione w książce programy można znaleźć na dołączonej dyskietce i na serwerze Wydawnictwa Helion.

Tu znajdziesz przykłady z książki

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Java w szkole Java w szkole Autor: Jan Bielecki Format B5, 400 stron, ISBN: 83-7197-188-5 Zawiera dyskietkŒ Data wydania: 10/1999 Cena ksi„¿ki: 39.00 z‡ Przesy‡ka gratis! Odbiorca pokrywa jedynie koszty pobrania (2,70 z‡) w przypadku przesy‡ki za zaliczeniem pocztowym Wydawnictwo Helion ul. Chopina 6, 44-100 Gliwice, POLAND telefon: (32) 230-98-63, 231-22-19 fax: (32) 230-98-63 w.10 mail: helion@helion.com.pl Niniejsza ksi„¿ka to zar(cid:243)wno podrŒcznik do nauki programowania aplikacji bazodanowych, jak i kompendium wiedzy o bibliotece VCL w czŒ(cid:156)ci, kt(cid:243)ra dotyczy baz danych. Studiuj„c tŒ ksi„¿kŒ mo¿na samodzielnie zbudowa(cid:230) w‡asne komponenty bazodanowe do edycji danych. Czytelnik znajdzie w niej wiadomo(cid:156)ci miŒdzy innymi na temat: narzŒdzi tworzenia baz danych (Database Desktop, SQL Explorer), mo¿liwo(cid:156)ci klasy TDataSet, u¿ycia klasy TTable, u¿ywania komponentu klasy TDatabase, serwera SQL Interbase, kt(cid:243)ry jest dostarczany wraz z pakietem Delphi, komponent(cid:243)w TServerSocket oraz TClientSocket, zaawansowanych technik obs‡ugi zdalnych serwer(cid:243)w SQL, w szczeg(cid:243)lno(cid:156)ci bazy Interbase. Zobacz fragment ksi„¿ki Spis tre(cid:156)ci Je¿eli znasz tŒ ksi„¿kŒ oceæ j„ Aktualny cennik ksi„¿ek e-mailem Ksi„¿ki i 3D Online Informacje o nowo(cid:156)ciach e-mailem Zam(cid:243)w najnowszy katalog Zobacz opis do‡„czonego pliku Helion 1999 2G(cid:3)$XWRUD RUD](cid:3)F](cid:30)FLHM(cid:3)Java VWDMH(cid:3)VL(cid:3)ulubionym M]\NLHP(cid:3)SURJUDPRZDQLD(cid:17)(cid:3)0R*QD(cid:3)RF]HNLZD(cid:252)(cid:15) *H(cid:3) MX*(cid:3) ZNUyWFH(cid:3) VWDQLH(cid:3) VL(cid:3) M]\NLHP(cid:3)powszechnym(cid:15)(cid:3) NWyU\(cid:3) MDNR(cid:3) MHG\Q\(cid:3) EG]LH(cid:3) QDXF]DQ\ w klasach LQIRUPDW\F]Q\FK(cid:3)6]NyÆ(cid:3)(cid:29)UHGQLFK(cid:3)RUD](cid:3)QD(cid:3)SLHUZV]\P(cid:3)URNX(cid:3)8F]HOQL(cid:3):\*V]\FK(cid:17) -X*(cid:3)REHFQLH(cid:3)QLH(cid:3)LVWQLHMH(cid:3)Z(cid:3)3ROVFH(cid:3)Uczelnia Akademicka, w której nie nauczano by Javy. 2G(cid:3)ODW(cid:3)G]LHMH(cid:3)VL(cid:3)WDN(cid:3)Z(cid:3)3ROVNR(cid:16)-DSR(cid:20)VNLHM(cid:3):\*V]HM(cid:3)6]NROH(cid:3)7HFKQLN(cid:3).RPSXWHURZ\FK(cid:3)w War- V]DZLH(cid:3)RUD](cid:3)Z(cid:3)W\FK(cid:3)XF]HOQLDFK(cid:3)Z\*V]\FK(cid:15)(cid:3)NWyU\FK(cid:3)G\GDNW\F\(cid:3)Z]RUHP(cid:3)NROHJyZ(cid:3)](cid:3)USA, zadali sobie trud przestawienia z C, C++, Delphi i Pascala na -DY. 0LPR(cid:3)LVWQLHQLD(cid:3)MX*(cid:3)SRQDG(cid:3)1500(cid:3)NVL(cid:5)*HN(cid:3)QD(cid:3)WHPDW(cid:3)Javy(cid:15)(cid:3)NLONX(cid:3)SU]HWÆXPDF]RQ\FK(cid:3)QD(cid:3)M]\N polski oraz 5 QDSLVDQ\FK(cid:3)SU]H]H(cid:3)PQLH(cid:15)(cid:3)ZFL(cid:5)*(cid:3)VSRW\NDP(cid:3)VL(cid:3)](cid:3)XW\VNLZDQLDPL(cid:15)(cid:3)*H(cid:3)EUDNXMH ÆDWZHJR(cid:3)WHNVWX(cid:3)QD(cid:3)WHPDW(cid:3)Javy. 6ÆXFKDF]H(cid:3)PRLFK(cid:3)Z\NÆDGyZ(cid:15)(cid:3)D(cid:3)MHVW(cid:3)LFK(cid:3)ND*GHJR(cid:3)URNX(cid:3)SRQDG(cid:3)300(cid:15)(cid:3)QLH(cid:3)PDM(cid:5)(cid:3)WHJR(cid:3)SURble- PX(cid:15)(cid:3)ER(cid:3)ZV]\VWNR(cid:3)FR(cid:3)MHVW(cid:3)Z(cid:3)PRLFK(cid:3)NVL(cid:5)*NDFK(cid:3)WUXGQH(cid:3)F]\QL(cid:3)SURVW\P(cid:3)QD(cid:3)Z\NÆDG]LH(cid:17)(cid:3) LRU(cid:5)F MHGQDN(cid:3) SRG(cid:3) XZDJ(cid:3) SR]RVWDÆ\FK(cid:15)(cid:3) D(cid:3) ]ZÆDV]F]D(cid:3) W\FK(cid:3) XF]QLyZ(cid:3) V]NyÆ(cid:3) (cid:30)UHGQLFK, którzy pod NLHUXQNLHP(cid:3) VZRLFK(cid:3) QDXF]\FLHOL(cid:15)(cid:3) FKFLHOLE\(cid:3) SR]QD(cid:252)(cid:3) -DY(cid:3) jeszcze przed SRGMFLHP(cid:3) VWX(cid:16) GLyZ(cid:3)Z\*V]\FK(cid:15)(cid:3)QDSLVDÆHP(cid:3)NVL(cid:5)*N(cid:15)(cid:3)X(cid:3)SRGVWDZ(cid:3)NWyUHM(cid:3)OH*\(cid:3)QDVWSXM(cid:5)FH(cid:3)ZQLRVNRZDQLH(cid:29) -H(cid:30)OL(cid:3) Z(cid:3) GRW\FKF]DVRZ\P(cid:3) QDXF]DQLX(cid:3) SURJUDPRZDQLD(cid:3) QDMSLHUZ(cid:3) Z\NÆDGD VL C i C++, a dopiero po nLFK(cid:3)-DY(cid:15)(cid:3)WR(cid:3)GODF]HJR(cid:3)QLH(cid:3)RJUDQLF]\(cid:252)(cid:3)VL(cid:3)GR(cid:3)-DY\(cid:15) DOH(cid:3)QDMSLHUZ(cid:3)SRGD(cid:252)(cid:3)M(cid:5)(cid:3)Z(cid:3)SRVWDFL(cid:3)SRGREQHM(cid:3)GR(cid:3) (cid:15)(cid:3)D(cid:3)QDVWSQLH(cid:3)Z(cid:3)SRVWDFL(cid:3)SRdo- EQHM(cid:3)GR(cid:3) (cid:14)(cid:14)(cid:17)(cid:3):(cid:3)WHQ(cid:3)VSRVyE(cid:3)PR*QD(cid:3)FDÆNRZLFLH(cid:3)]UH]\JQRZD(cid:252)(cid:3)](cid:3) L(cid:3) (cid:14)(cid:14)(cid:15)(cid:3)D(cid:3)-DY Z\ÆR*\(cid:252)(cid:3)MDNR(cid:3)MHG\Q\(cid:3)M]\N(cid:3)SURJUDPRZDQLD(cid:17) $E\(cid:3) ]DGDQLH(cid:3) WR(cid:3) ]UHDOL]RZD(cid:252)(cid:15)(cid:3) RSUDFRZDÆHP(cid:3) LEOLRWHN, która osobom praktycznie bez przygotowania(cid:15)(cid:3)XPR*OLZLD(cid:3)QDW\FKPLDVWRZH(cid:3)SLVDQLH(cid:3)SURJUDPyZ(cid:3)Z(cid:3)Javie. Ten liF](cid:5)(cid:16) cy ok. 4000 wierszy produkt, który w postaci skompresowanego pliku *.jar zajmuje ok. 40 . (cid:15)(cid:3)PR*H(cid:3)E\(cid:252)(cid:3)X*\W\(cid:3)Z(cid:3)GRZROQ\P(cid:3)(cid:30)URGRZLVNX(cid:3)XUXFKRPLHQLRZ\P(cid:3)3-generacji. 1D(cid:3)SRGVWDZLH(cid:3)PRLFK(cid:3)GR(cid:30)ZLDGF]H(cid:20)(cid:3)polecam MHGQDN(cid:3)W\ONR(cid:3)GZD(cid:3)WDNLH(cid:3)(cid:30)URGRZLVND(cid:29)(cid:3)EH]SÆDtny tandem Kawa 3.22 – Java 2 Paltform(cid:3)RUD](cid:3) NRV]WXM(cid:5)F\(cid:3) Z(cid:3) ZHUVML(cid:3) HGXNDF\MQHM(cid:3) RN(cid:17) $100 kompilator JBuilder 3.0. )\F](cid:5)F(cid:3) ]\WHOQLNRP(cid:3)SR*\WHF]QHM(cid:3)L(cid:3)ÆDWZHM(cid:3)OHNWXU\(cid:15)(cid:3)](cid:3)SU]\MHPQR(cid:30)FL(cid:5)(cid:3)LQIRUPXM(cid:15)(cid:3)*H(cid:3)ZV]\(cid:16) VWNLH(cid:3)RPDZLDQH(cid:3)Z(cid:3)NVL(cid:5)*FH(cid:3)SURJUDP\(cid:3)(UyGÆRZH(cid:15)(cid:3)ZUD](cid:3)(cid:3)](cid:3)ELEOLRWHN(cid:5) View.jar(cid:15)(cid:3)PR*QD(cid:3)]QD(cid:16) OH((cid:252)(cid:3)QD(cid:3)GRÆ(cid:5)F]RQHM(cid:3)G\VNLHWFH(cid:3)RUD](cid:3)Z(cid:3)VHUZHU]H(cid:3)Wydawnictwa Helion. prof. Jan Bielecki 3URJUDP\ Programowanie jest zapisywaniem F]\QQR(cid:30)FL(cid:3)przewidzianych do wykonania przez kom- SXWHU(cid:17)(cid:3)=DSLVHP(cid:3)F]\QQR(cid:30)FL(cid:3)MHVW(cid:3)SURJUDP(cid:3)(UyGÆRZ\(cid:15)(cid:3)QD(cid:3)SU]\NÆDG(cid:3)QDSLVDQ\(cid:3)Z(cid:3)Javie. Program (UyGÆRZ\(cid:3) SRGGDMH(cid:3) VL(cid:3) kompilacji(cid:15)(cid:3) D(cid:3) QDVWSQLH(cid:3) Æ(cid:5)F]\(cid:3) z podprogramami dostarczanymi wraz z kompilatorem. Powstaje wówczas program wykonalny. Jego wykonanie powie- U]D(cid:3) VL(cid:3) Maszynie Wirtualnej(cid:17)(cid:3) -HVW(cid:3) WR(cid:3) VSHFMDOQ\(cid:3) SURJUDP(cid:15)(cid:3) NWyU\(cid:3) LQWHUSUHWXM(cid:5)F(cid:3) LQVWUXNFMH ]DZDUWH(cid:3) Z(cid:3) SURJUDPLH(cid:3) Z\NRQDOQ\P(cid:15)(cid:3) UHDOL]XMH(cid:3) F]\QQR(cid:30)FL(cid:15)(cid:3) MDNLH(cid:3) Z\UD*RQR(cid:3) Z(cid:3) SURJUDPLH (UyGÆRZ\P(cid:17) :(cid:3) SURFHVLH(cid:3) WZRU]HQLD(cid:3) L(cid:3) LQWHUSUHWRZDQLD(cid:3) SURJUDPX(cid:3) VSHFMDOQ(cid:5)(cid:3) URO(cid:3) RGJU\ZDM(cid:5)(cid:3) 2 pliki: Master.java ]DZLHUDM(cid:5)F\(cid:3)NODV(cid:3)DSOHWRZ(cid:5)(cid:3)oraz Project.html ]DZLHUDM(cid:5)F\(cid:3)opis apletu. Prze- JO(cid:5)GDUND(cid:3) ]DSR]QDMH(cid:3) VL(cid:3) ](cid:3) RSLVHP(cid:3) DSOHWX(cid:15)(cid:3) WDNLP(cid:3) MDN(cid:3) SRGDQ\(cid:3) Z(cid:3) WDEHOL(cid:3) Plik Project.html i znajduje w nim: 1. 1D]Z(cid:3)NODV\(cid:3)DSOHWRZHM(cid:3)(cid:11)code). 2. 6]HURNR(cid:30)(cid:252)(cid:3)(cid:11)width(cid:12)(cid:3)L(cid:3)Z\VRNR(cid:30)(cid:252)(cid:3)(cid:11)height(cid:12)(cid:3)SURVWRN(cid:5)WQHM(cid:3)UDPNL(cid:15)(cid:3)XGRVWSQLRQHM(cid:3)SUR(cid:16) JUDPRZL(cid:3)GR(cid:3)NRPXQLNRZDQLD(cid:3)VL(cid:3)](cid:3)X*\WNRZQLNLHP(cid:17) 7DEHOD Plik Project.html applet code=Master.class width=400 height=420 /applet albo applet code=janb.java3.Master.class width=400 height=420 /applet 1D]Z\(cid:3)0DVWHU(cid:3)L(cid:3)3URMHFW(cid:3)PR(cid:20)QD(cid:3)]DVWæSLŁ(cid:3)LQQ\PL(cid:17)(cid:3)1DOH(cid:20)\(cid:3)MHG\QLH(cid:3)SDPL(cid:246)(cid:16) WDŁ(cid:15)(cid:3)(cid:20)H(cid:3)MH(cid:8)OL(cid:3)QD]Zæ(cid:3)SXEOLF]QHM(cid:3)NODV\(cid:3)DSOHWRZHM(cid:3)MHVW(cid:3)1DPH(cid:15)(cid:3)WR(cid:3)GHILQLFMD NODV\(cid:3)PXVL(cid:3)VL(cid:246)(cid:3)]QDMGRZDŁ(cid:3)Z(cid:3)SOLNX(cid:3)1DPH(cid:17)MDYD(cid:17) 6WUXNWXUD(cid:3)SURJUDPX Program zapisany jako aplet Master(cid:15)(cid:3)]QDMGXMH(cid:3)VL(cid:3)Z(cid:3)SOLNX(cid:3)Master.java. Opis apletu znaj- GXMH(cid:3)VL(cid:3)Z(cid:3)SOLNX(cid:3)Project.html(cid:17)(cid:3)3DUDPHWUDPL(cid:3)RSLVX(cid:3)V(cid:5)(cid:29) Master.class, 400 i 420. W dal- V]\FK(cid:3)SU]\NÆDGDFK(cid:3)EG]LH(cid:3)SRGDZDQD(cid:3)W\ONR(cid:3)]DZDUWR(cid:30)(cid:252)(cid:3)SOLNX(cid:3)Master.java. $SOHW(cid:3)PD(cid:3)SRVWD(cid:252)(cid:3)SU]HGVWDZLRQ(cid:5)(cid:3)Z(cid:3)WDEHOL(cid:3)Struktura apletu(cid:17)(cid:3)6NÆDGD(cid:3)VL(cid:3)RQ(cid:3)](cid:3)SROHFH(cid:20)(cid:3)LP(cid:16) portu oraz z definicji klasy Master(cid:17)(cid:3) .ODVD(cid:3) WD(cid:3) VWDQRZL(cid:3) QDGEXGRZ(cid:3) QDG(cid:3) NODV(cid:5)(cid:3) ZLGRNX (View). Napisy od pary znaków // (XNR(cid:30)QLN, XNR(cid:30)QLN(cid:12)(cid:3) GR(cid:3) NR(cid:20)FD(cid:3) ZLHUV]D(cid:3) ZÆ(cid:5)F]QLH(cid:15)(cid:3) V(cid:5) komentarzami(cid:3)L(cid:3)MDNR(cid:3)WDNLH(cid:3)QLH(cid:3)PDM(cid:5)(cid:3)*DGQHJR(cid:3)ZSÆ\ZX(cid:3)QD(cid:3)SU]HELHJ(cid:3)Z\NRQDQLD(cid:3)SURJUDPX(cid:17) 7DEHOD Struktura apletu package janb.java3; (cid:18)(cid:18)(cid:3)]DOHFDQH(cid:15)(cid:3)DOH(cid:3)QLHRERZL(cid:5)]NRZH import janb.view.*; // tu jest miejsce na dodatkowe polecenia importu public class Master extends View { //********************************************************// (cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:18)(cid:18)(cid:3)WX(cid:3)QDOH*\(cid:3)ZVWDZL(cid:252)(cid:3)ZÆDVQH(cid:3)LQVWUXNFMH(cid:3)SURJUDPX (cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:18)(cid:18)(cid:3)SRG(cid:3)*DGQ\P(cid:3)SR]RUHP(cid:3)QLH(cid:3)ZVWDZLDM(cid:5)F(cid:3)IXQNFML // public void init() //********************************************************// } GOD(cid:3)GRFLHNOLZ\FK 1D]Z\(cid:3) NODV(cid:3) PR*QD(cid:3) XSUR(cid:30)FL(cid:252)(cid:3) GR(cid:3) identyfikatorów (np. Applet, Graphics albo Color). $E\(cid:3)WR(cid:3)XPR*OLZL(cid:252)(cid:15)(cid:3)QDOH*\(cid:3)X*\(cid:252)(cid:3)SROHFH(cid:20)(cid:3)LPSRUWX(cid:15)(cid:3)QD(cid:3)SU]\NÆDG import java.awt.Graphics; albo import java.awt.*; ’]LNL(cid:3)SROHFHQLX import java.applet.Graphics; QD]Z(cid:3)NODV\(cid:3)java.awt.Graphics PR*QD(cid:3)XSUR(cid:30)FL(cid:252)(cid:3)GR(cid:3)Graphics(cid:15)(cid:3)D(cid:3)G]LNL(cid:3)SROHFHQLX import java.awt.*; RGZRÆDQLD(cid:3)GR(cid:3)NODV(cid:3)SDNLHWX(cid:3)java.awt(cid:15)(cid:3)NWyU\FK(cid:3)QD]Z\(cid:3)]DF]\QDM(cid:5)(cid:3)VL(cid:3)RG(cid:3)java.awt(cid:15)(cid:3)PR*QD XSUR(cid:30)FL(cid:252)(cid:3)GR(cid:3)LGHQW\ILNDWRUD(cid:3)NR(cid:20)F](cid:5)FHJR(cid:3)WDN(cid:5)(cid:3)QD]Z(cid:3)(cid:11)QS(cid:17)(cid:3)java.awt.Graphics do Graphics). $(cid:3)]DWHP(cid:3)GUXJLH(cid:3)](cid:3)UR]SDWU]RQ\FK(cid:3)SROHFH(cid:20)(cid:3)LPSRUWX(cid:3)MHVW(cid:3)silniejsze(cid:15)(cid:3)JG\*(cid:3)SLHUZV]H(cid:3)](cid:3)QLHJR wynika. :LGRN(cid:3)L(cid:3)NODWND W chwili odpalenia DSOHWX(cid:15)(cid:3) QD(cid:3) HNUDQLH(cid:3) SRMDZLD(cid:3) VL(cid:3) SURVWRN(cid:5)WQD(cid:3) ramka podzielona na widok i NODWN. Widok jest obszarem, w którym aplet przedstawia swoje wyniki, a kla- tka jest obszarem do wprowadzania danych(cid:17)(cid:3):(cid:3)ND*GHM(cid:3)FKZLOL(cid:3)QD(cid:3)MHGHQ(cid:3)](cid:3)W\FK(cid:3)REV]DUyZ jest nastawiony celownik. 7X*(cid:3)SR(cid:3)UR]SRF]FLX(cid:3)Z\NRQ\ZDQLD(cid:3)DSOHWX(cid:3)FHORZQLN(cid:3)MHVW(cid:3)QDVWDZLRQ\(cid:3)QD(cid:3)NODWN. Objawia VL(cid:3) WR(cid:3) Z\(cid:30)ZLHWOHQLHP(cid:3) Z(cid:3) QLHM(cid:3) karetki(cid:17)(cid:3) 1DFL(cid:30)QLFLH(cid:3) NODZLV]D(cid:3) Enter gdy celownik jest nastawiony na SXVW(cid:5)(cid:3) NODWN(cid:3) DOER(cid:3) NOLNQLFLH(cid:3) Z(cid:3) REV]DU]H(cid:3) ZLGRNX(cid:3) SU]HQRVL(cid:3) FHORZQLN(cid:3) QD widok(cid:17)(cid:3),QQ\P(cid:3)VSRVREHP(cid:3)SU]HQLHVLHQLD(cid:3)FHORZQLND(cid:3)QD(cid:3)ZLGRN(cid:3)MHVW(cid:3)Z\ZRÆDQLH(cid:3)IXQNFML(cid:3)re- questFocus. void requestFocus() Przenosi celownik na widok. Na ekranie Widok i klatka SRND]DQR(cid:3)SRF](cid:5)WNRZ\(cid:3)Z\JO(cid:5)G(cid:3)DSOHWX(cid:15)(cid:3)](cid:3)FHORZQLNLHP(cid:3)QDsta- wioQ\P(cid:3)QD(cid:3)NODWN(cid:17) (NUDQ Widok i klatka .ODVD(cid:3)ZLGRNX(cid:3)MHVW(cid:3)GRVWDUF]RQD(cid:3)Z(cid:3)F](cid:246)(cid:8)FL(cid:3) LEOLRWHND(cid:3)9LHZ(cid:17)(cid:3)=DSR]QDQLH VL(cid:246)(cid:3)](cid:3)MHM(cid:3)NRGHP(cid:3)MHVW(cid:3)SR(cid:20)\WHF]Q\P(cid:3)ŁZLF]HQLHP(cid:15)(cid:3)NW(cid:209)UHJR(cid:3)Z\NRQDQLH(cid:3)]DOH(cid:16) FD(cid:3)VL(cid:246)(cid:3)MHGQDN(cid:3)GRSLHUR(cid:3)SR(cid:3)SU]HVWXGLRZDQLX(cid:3)FD(cid:228)HM(cid:3)NVLæ(cid:20)NL(cid:17) 1DMSURVWV]\(cid:3)DSOHW 0LG]\(cid:3) NRPHQWDU]DPL /* ... */(cid:3)(cid:3) QDOH*\(cid:3) ZVWDZL(cid:252)(cid:3) SURJUDP(cid:3) DSOHWX(cid:17)(cid:3) :(cid:3) QDMSURVWV]\P przypadku jest to dowolny zestaw deklaracji pól i definicji funkcji, takich jak initView, runView i drawView(cid:15)(cid:3)Z\ZRÆ\ZDQ\FK(cid:3)](cid:3)NODV\(cid:3)View(cid:3)DOER(cid:3)ZQWU]D(cid:3)DSOHWX(cid:17) W initView XPLHV]F]D(cid:3)VL(cid:3)F]\QQR(cid:30)FL(cid:3)LQLFMXM(cid:5)FH, a w drawView(cid:3)F]\QQR(cid:30)FL(cid:3)regeneruM(cid:5)(cid:16) ce ZLGRN(cid:17)(cid:3)’RGDWNRZR(cid:3)PR*QD(cid:3)X*\ZD(cid:252)(cid:3)IXQNFML(cid:3)startView, stopView i destroyView. void initView() :\ZRÆ\ZDQD(cid:3)jednokrotnie(cid:15)(cid:3)EH]SR(cid:30)UHGQLR(cid:3)SR(cid:3)Z\(cid:30)ZLHWOHQLX(cid:3)DSOHWX(cid:17) void drawView() :\ZRÆ\ZDQD(cid:3)wielokrotnie(cid:15)(cid:3) SR(cid:3) ND*G\P(cid:3) ]HZQWU]Q\P zniszczeniu widoku, spowodo- waQ\P(cid:3)QD(cid:3)SU]\NÆDG(cid:3)SU]HM(cid:30)FLRZ\P(cid:3)]DVÆRQLFLHP(cid:3)widoku przez obce okno albo ikoniza- FM(cid:5)(cid:3)RNQD(cid:3)SU]HJO(cid:5)GDUNL(cid:17) void stopView() :\ZRÆ\ZDQD(cid:3)ZyZF]DV(cid:15)(cid:3)JG\(cid:3)SU]HJO(cid:5)GDUND(cid:3)SU]HVWDMH(cid:3)SRND]\ZD(cid:252)(cid:3)DSOHW(cid:17) void startView() :\ZRÆ\ZDQD(cid:3) SU]HG(cid:3) ND*G\P(cid:3) SRND]DQLHP(cid:3) DSOHWX(cid:15)(cid:3) Z(cid:3) V]F]HJyOQR(cid:30)FL(cid:3) WX*(cid:3) SR(cid:3) Z\ZRÆDQLX funkcji initView. void destroyView() :\ZRÆ\ZDQD(cid:3)jednokrotnie(cid:15)(cid:3)WX*(cid:3)SU]HG(cid:3)]QLV]F]HQLHP(cid:3)DSOHWX(cid:17) void runView() :\ZRÆ\ZDQD(cid:3) jednokrotnie(cid:15)(cid:3) EH]SR(cid:30)UHGQLR(cid:3) SR(cid:3) ]DNR(cid:20)F]HQLX(cid:3) Z\NRQ\ZDQLD(cid:3) IXQNFML(cid:3) init- View(cid:17)(cid:3)1LH(cid:3)]DOHFD(cid:3)VL(cid:3)MHM(cid:3)VWRVRZD(cid:252)(cid:3)MHGQRF]H(cid:30)QLH(cid:3)](cid:3)drawView(cid:15)(cid:3)JG\*(cid:3)MHVW(cid:3)](cid:3)QL(cid:5)(cid:3)Z\NRQ\wa- na ZVSyÆELH*QLH(cid:15)(cid:3) D(cid:3) WR(cid:3) Z\PDJD(cid:3) XPLHMWQHJR(cid:3) SRVÆXJLZDQLD(cid:3) VL(cid:3) synchronizowaniem Z(cid:5)WNyZ(cid:17) Pomocna w wyprowadzaniu rezultatu jest funkcja showResult. Jej argumentem jest do- wolne Z\UD*HQLH(cid:3)ÆD(cid:20)FXFKRZH. void showResult(String result) void showResult(int value) :\SURZDG]D(cid:3)ZDUWR(cid:30)(cid:252)(cid:3)result(cid:15)(cid:3)SRFK\ORQ(cid:5)(cid:3)L(cid:3)SRJUXELRQ(cid:5)(cid:3)F]FLRQN(cid:5)(cid:3)30(cid:16)SXQNWRZ(cid:5)(cid:15)(cid:3)Z(cid:3)SRÆRZLH Z\VRNR(cid:30)FL(cid:3)ZLGRNX(cid:17) void showResult(String result, int size) :\SURZDG]D(cid:3)ZDUWR(cid:30)(cid:252)(cid:3)result(cid:15)(cid:3)SRJUXELRQ(cid:5)(cid:3)F]FLRQN(cid:5)(cid:3)R(cid:3)UR]PLDU]H(cid:3)size(cid:15)(cid:3)Z(cid:3)SRÆRZLH(cid:3)Z\VRNR(cid:30)FL widoku. ]FLRQNL(cid:3)SRQL(cid:20)HM(cid:3)(cid:20)(cid:19)(cid:3)SW(cid:3)Væ(cid:3)V(cid:228)DER(cid:3)ZLGRF]QH(cid:17) Na ekranie $E\(cid:3) WUDG\FML(cid:3) VWDÆR(cid:3) VL(cid:3) ]DGR(cid:30)(cid:252)(cid:3) SRND]DQR(cid:3) DSOHW(cid:3) Z\(cid:30)ZLHWODM(cid:5)F\(cid:3) QDSLV(cid:3) Hello from JanB. (NUDQ Aby tradycji VWDÆR(cid:3)VL(cid:3)]DGR(cid:30)(cid:252) import janb.view.*; public class Master extends View { // ****************************************************** // public void drawView() { showResult( Hello from JanB ); } // ****************************************************** // } ’DQH(cid:3)ZHM(cid:8)FLRZH Aplet zazwyczaj oczekuje danych(cid:15)(cid:3)RG(cid:3)NWyU\FK(cid:3)X]DOH*QLD(cid:3)Z\NRQDQLH(cid:3)VZRLFK(cid:3)F]\QQR(cid:30)FL(cid:17) ’DQH(cid:3)V(cid:5)(cid:3)ZSLV\ZDQH(cid:3)GR(cid:3)klatki(cid:3)L(cid:3)Z\V\ÆDQH(cid:3)GR(cid:3)DSOHWX(cid:3)SR(cid:3)QDFL(cid:30)QLFLX(cid:3)NODZLV]D(cid:3)Enter. Po- woduje to zainicjowanie parametru funkcji dataEntered GDQ(cid:5)(cid:3)ZSLVDQ(cid:5)(cid:3)GR(cid:3)NODWNL(cid:17) 1DVWSXM(cid:5)F\(cid:3)DSOHW(cid:15)(cid:3)SRND]DQ\(cid:3)QD(cid:3)HNUDQLH(cid:3)Pozdrowienie z apletu, napisano w taki sposób, *H(cid:3)MH(cid:30)OL(cid:3)GR(cid:3)NODWNL(cid:3)ZSURZDG]L(cid:3)VL(cid:3)LPL(cid:3)X*\WNRZQLND(cid:3)(cid:11)QS(cid:17) Jan(cid:12)(cid:15)(cid:3)D(cid:3)QDVWSQLH(cid:3) QDFL(cid:30)QLH(cid:3) NOD(cid:16) wisz Enter(cid:15)(cid:3)WR(cid:3)QD(cid:3)SXOSLFLH(cid:3)Z\(cid:30)ZLHWOL(cid:3)VL(cid:3)SR]GURZLHQLH(cid:3)(cid:11)WX(cid:29) Hello Jan). (NUDQ Pozdrowienie z apletu import janb.view.*; public class Master extends View { // ****************************************************** // public void dataEntered(String data) { // wyprowadzenie pozdrowienia showResult( Hello + data); } // ****************************************************** // } .RPXQLNDW\ 3U]HJO(cid:5)GDUND(cid:3)GRGDWNRZR(cid:3)XGRVWSLD(cid:3)SROH(cid:15)(cid:3)Z(cid:3)NWyU\P(cid:3)PR*QD(cid:3)XPLHV]F]D(cid:252)(cid:3)NUyWNLH(cid:3)komunika- ty(cid:17)(cid:3):(cid:3)SU]HJO(cid:5)GDUFH(cid:3)(cid:30)URGRZLVND(cid:3)Kawa(cid:15)(cid:3)SROH(cid:3)WR(cid:3)Z\VWSXMH(cid:3)EH]SR(cid:30)UHGQLR(cid:3)SRG(cid:3)NODWN(cid:5)(cid:3)QD(cid:3)GDQH(cid:17) void showMsg(String string) Wyprowadza do pola komunikatów napis string. 1DVWSXM(cid:5)F\(cid:3)DSOHW(cid:15)(cid:3)SRND]DQ\(cid:3)QD(cid:3)HNUDQLH(cid:3)Pole komunikatów(cid:15)(cid:3)(cid:3)QDSLVDQR(cid:3)Z(cid:3)WDNL(cid:3)VSRVyE(cid:15)(cid:3)*H Z\(cid:30)ZLHWOD(cid:3)SR]GURZLHQLH(cid:3)W\ONR(cid:3)ZyZF]DV(cid:15)(cid:3)JG\(cid:3)Z(cid:3)NODWFH(cid:3)SRGDQR(cid:3)QDSLV(cid:3)literowy. W przeci- wnym razie informuje o niepoprawnej danej. (NUDQ Pole komunikatów import janb.view.*; public class Master extends View { // ****************************************************** // public void dataEntered(String data) { (cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)LI(cid:11)LV$OSKD(cid:11)GDWD(cid:12)(cid:12)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:18)(cid:18)(cid:3)F]\(cid:3)GDQD(cid:3)VNÆDGD(cid:3)VL(cid:3)](cid:3)OLWHU showResult( Hello + data); else { showResult( ? + data); showMsg(data + is not a name ); } } // ****************************************************** // } ’RVWDUF]DQLH(cid:3)GDQ\FK ’R(cid:3) UR]SR]QDZDQLD(cid:3) GDQ\FK(cid:3) GRVWDUF]RQ\FK(cid:3) Z(cid:3) NODWFH(cid:3) VÆX*(cid:5)(cid:3) IXQNFMH(cid:3) dataEntered(cid:17)(cid:3) -H(cid:30)OL DSOHW(cid:3)]DZLHUD(cid:3)ZLFHM(cid:3)QL*(cid:3)MHGQ(cid:5)(cid:3)WDN(cid:5)(cid:3)IXQNFM(cid:15)(cid:3)WR(cid:3)Z\EyU(cid:3)IXQNFML(cid:3)RGE\ZD(cid:3)VL(cid:3)QD(cid:3)SRGVWDZLH rodzaju argumentu: znaku (np. J), ÆD(cid:20)FXFKD (np. JB) albo ]HVWDZX(cid:3) ÆD(cid:20)FXFKyZ(cid:3) (np. Jan Bielecki). -H(cid:8)OL(cid:3) SR(cid:3) QDFL(cid:8)QL(cid:246)FLH(cid:3) NODZLV]D(cid:3) (QWHU(cid:3) DSOHW(cid:3) QLH(cid:3) SRGHMPLH(cid:3) SU]HWZRU]HQLD GRVWDUF]RQ\FK(cid:3)GDQ\FK(cid:15)(cid:3)FR(cid:3)PR(cid:20)H(cid:3)Z\QLNDŁ(cid:3)](cid:3)X(cid:20)\FLD(cid:3)IXQNFML(cid:3)GDWD(QWHUHG SU]\VWRVRZDQHM(cid:3) GR(cid:3) UR]SR]QDZDQLD(cid:3) SRMHG\QF]\FK(cid:3) (cid:228)D(cid:254)FXFK(cid:209)Z(cid:3) L(cid:3) GRVWDU(cid:16) F]HQLD(cid:3) ZL(cid:246)FHM(cid:3) QL(cid:20)(cid:3) MHGQHJR(cid:3) (cid:228)D(cid:254)FXFKD(cid:3) (cid:11)QS(cid:17)(cid:3)-RKQQ\(cid:3) :DONHU(cid:12)(cid:15)(cid:3) WR(cid:3) Z(cid:3) FHOX SRLQIRUPRZDQLD(cid:15)(cid:3) (cid:20)H(cid:3) GDQH(cid:3) ]RVWD(cid:228)\(cid:3) ]LJQRURZDQH(cid:15)(cid:3) UR]OHJQLH(cid:3) VL(cid:246)(cid:3) V\JQD(cid:228) G(cid:18)ZL(cid:246)NRZ\(cid:17) void dataEntered(char data) :\ZRÆ\ZDQD(cid:3)SR(cid:3)ND*G\P(cid:3)GRVWDUF]HQLX(cid:3)Z(cid:3)NODWFH(cid:3)SRMHG\QF]HJR(cid:3)znaku(cid:17)(cid:3)8GRVWSQLD(cid:3)Z(cid:3)data kod znaku. 1DVWSXM(cid:5)F\(cid:3)DSOHW(cid:15)(cid:3)SRND]DQ\(cid:3)QD(cid:3)HNUDQLH(cid:3)Dane znakowe, rozpoznaje czy wprowadzona GDQD(cid:3)MHVW(cid:3)PDÆ(cid:5)(cid:3)OLWHU(cid:5)(cid:3)DOIDEHWX(cid:3)DQJLHOVNLHJR(cid:17) (NUDQ Dane znakowe import janb.view.*; public class Master extends View { // ****************************************************** // public void dataEntered(char data) { if(data = a data = z ) showResult( You entered small letter + data); else showResult( You entered + data); } // ****************************************************** // } void dataEntered(String data) :\ZRÆ\ZDQD(cid:3) SR(cid:3) ND*G\P(cid:3) GRVWDUF]HQLX(cid:3) Z(cid:3) NODWFH(cid:3) ZHM(cid:30)FLRZHM(cid:3) SRMHG\QF]HJR(cid:3) ÆD(cid:20)FXFKD znaNyZ(cid:17)(cid:3)8GRVWSQLD(cid:3)Z(cid:3)data ÆD(cid:20)FXFK(cid:3)]QDNyZ(cid:17) int length(String string) ’RVWDUF]D(cid:3)OLF]E(cid:3)]QDNyZ(cid:3)OD(cid:20)FXFKD(cid:3)string. 1DVWSXM(cid:5)F\(cid:3)DSOHW(cid:15)(cid:3)SRND]DQ\(cid:3)QD(cid:3)HNUDQLH(cid:3)’DQH(cid:3)ÆD(cid:20)FXFKRZH(cid:15)(cid:3)(cid:3)ZSURZDG]D(cid:3)ÆD(cid:20)FXFK(cid:3)L(cid:3)SRGD(cid:16) MH(cid:3)OLF]E(cid:3)MHJR(cid:3)]QDNyZ(cid:17) (NUDQ ’DQH(cid:3)ÆD(cid:20)FXFKRZH import janb.view.*; public class Master extends View { // ****************************************************** // public void dataEntered(String data) { showResult( Length of \ + data + \ is + length(data) ); } // ****************************************************** // } void dataEntered(String[] data) :\ZRÆ\ZDQD(cid:3) SR(cid:3) ND*G\P(cid:3) GRVWDUF]HQLX(cid:3) Z(cid:3) NODWFH(cid:3) ZHM(cid:30)FLRZHM(cid:3) ZLFHM(cid:3) QL*(cid:3) MHGQHJR(cid:3) ÆD(cid:20)cu- FKD(cid:3)]QDNyZ(cid:17)(cid:3)8GRVWSQLD(cid:3)Z(cid:3)data RGQR(cid:30)QLN(cid:3)GR(cid:3)WDEOLF\(cid:3)ÆD(cid:20)FXFKyZ(cid:3)]QDNyZ(cid:17) int length(String[] vector) ’RVWDUF]D(cid:3)OLF]E(cid:3)ÆD(cid:20)FXFKyZ(cid:3)]DZDUW\FK(cid:3)Z(cid:3)WDEOLF\(cid:3)vector. 1DVWSXM(cid:5)F\(cid:3)DSOHW(cid:15)(cid:3)SRND]DQ\(cid:3)QD(cid:3)HNUDQLH(cid:3):LHOH(cid:3)(cid:3)ÆD(cid:20)FXFKyZ(cid:15)(cid:3)(cid:3)ZSURZDG]D(cid:3)FL(cid:5)J(cid:3)ÆD(cid:20)FXFKyZ i podaje ostatni. (NUDQ :LHOH(cid:3)ÆD(cid:20)FXFKyZ import janb.view.*; public class Master extends View { // ****************************************************** // public void dataEntered(String[] data) { int count = length(data); showResult( The last string is + data[count-1]); } // ****************************************************** // } String getString(String[] strings) ’RVWDUF]D(cid:3)ÆD(cid:20)FXFK(cid:3)XWZRU]RQ\(cid:3)](cid:3)SRÆ(cid:5)F]HQLD(cid:3)ÆD(cid:20)FXFKyZ(cid:3) ]DZDUW\FK(cid:3) Z(cid:3) WDEOLF\(cid:3)strings, po X]XSHÆQLHQLX(cid:3)ND*GHJR(cid:3)SRMHG\QF](cid:5)(cid:3)VSDFM(cid:5)(cid:17)(cid:3)-HVW(cid:3)SU]\GDWQD(cid:3)ZyZF]DV(cid:15)(cid:3)JG\(cid:3)ÆD(cid:20)FXFK\(cid:3)ZSUR(cid:16) ZDG]RQH(cid:3)GR(cid:3)NODWNL(cid:3)FKFH(cid:3)VL(cid:3)WUDNWRZD(cid:252)(cid:3)MDN(cid:3)jeden(cid:3)ÆD(cid:20)FXFK(cid:17) 1DVWSXM(cid:5)F\(cid:3)DSOHW(cid:15)(cid:3)SRND]DQ\(cid:3)QD(cid:3)HNUDQLH(cid:3)(cid:224)(cid:5)F]HQLH(cid:3)ÆD(cid:20)FXFKyZ, podaje jakie wprowadzo- QR(cid:3)ÆD(cid:20)FXFK\(cid:17) (NUDQ (cid:224)(cid:5)F]HQLH(cid:3)ÆD(cid:20)FXFKyZ import janb.view.*; public class Master extends View { // ****************************************************** // public void dataEntered(String[] data) { showResult( The strings are: + getString(data)); } // ****************************************************** // } GOD(cid:3)GRFLHNOLZ\FK -H(cid:30)OL(cid:3)DSOHW(cid:3)]DZLHUD(cid:3)ZLFHM(cid:3)QL*(cid:3)MHGQ(cid:5)(cid:3)IXQNFM(cid:3)dataEntered(cid:15)(cid:3)WR(cid:3)MHVW(cid:3)Z\ZRÆ\ZDQD(cid:3)W\ONR(cid:3)WD(cid:15) NWyUD(cid:3)MHVW(cid:3)SU]\VWRVRZDQD(cid:3)GR(cid:3)REVÆXJL(cid:3)ZSURZDG]RQHM(cid:3)GDQHM(cid:17)(cid:3)-H(cid:30)OL(cid:3)WDNLHM(cid:3)QLH(cid:3)PD(cid:15)(cid:3)WR(cid:3)MHVW(cid:3)Z\(cid:16) ZRÆ\ZDQD(cid:3)IXQNFMD(cid:3)ogólniejsza(cid:17)(cid:3):(cid:3)V]F]HJyOQR(cid:30)FL(cid:15)(cid:3)MH(cid:30)OL(cid:3)DSOHW(cid:3)]DZLHUD(cid:3)W\ONR(cid:3)IXQNFM(cid:3)](cid:3)SD(cid:16) rametrem typu char L(cid:3)IXQNFM(cid:3)](cid:3)SDUDPHWUHP(cid:3)W\SX(cid:3)String, to 1. 3R(cid:3)GRVWDUF]HQLX(cid:3)MHGQHJR(cid:3)]QDNX(cid:3)]RVWDQLH(cid:3)Z\ZRÆDQD(cid:3)IXQNFMD(cid:3)](cid:3)SDUDPHWUHP(cid:3)W\SX char. 2. 3R(cid:3)GRVWDUF]HQLX(cid:3)MHGQHJR(cid:3)ÆD(cid:20)FXFKD(cid:15)(cid:3)NWyU\(cid:3)VNÆDGD(cid:3)VL(cid:3)](cid:3)ZLFHM(cid:3)QL*(cid:3)](cid:3)MHGQHJR(cid:3)]QD(cid:16) NX(cid:15)(cid:3)]RVWDQLH(cid:3)Z\ZRÆDQD(cid:3)IXQNFMD(cid:3)](cid:3)SDUDPHWUHP(cid:3)W\SX(cid:3)String. 3. 3R(cid:3)GRVWDUF]HQLX(cid:3)ZLFHM(cid:3)QL*(cid:3)MHGQHJR(cid:3)ÆD(cid:20)FXFKD(cid:3)QLH(cid:3)]RVWDQLH(cid:3)Z\ZRÆDQD(cid:3)*DGQD(cid:3)z fun- kcji dataEntered, a to spowoduje wygenerowanie V\JQDÆX(cid:3)G(ZLNRZHJR. )XQNFMD(cid:3)SU]\VWRVRZDQD(cid:3)GR(cid:3)SU]HWZDU]DQLD(cid:3)GDQ\FK(cid:3)RJ(cid:209)OQLHMV]\FK(cid:3)QDGDMH VL(cid:246)(cid:3) GR(cid:3) REV(cid:228)XJLZDQLD(cid:3) GDQ\FK(cid:3) PQLHM(cid:3) RJ(cid:209)OQ\FK(cid:17)(cid:3) :(cid:3) V]F]HJ(cid:209)OQR(cid:8)FL(cid:3) IXQNFMD SU]\VWRVRZDQD(cid:3)GR(cid:3)SU]HWZDU]DQLD(cid:3)(cid:228)D(cid:254)FXFK(cid:209)Z(cid:15)(cid:3)PR(cid:20)H(cid:3)E\Ł(cid:3)X(cid:20)\WD(cid:3)GR(cid:3)SU]H(cid:16) WZRU]HQLD(cid:3)SRMHG\QF]\FK(cid:3)]QDN(cid:209)Z(cid:15)(cid:3)D(cid:3)IXQNFMD(cid:3)GR(cid:3)SU]HWZDU]DQLD(cid:3)]HVWDZ(cid:209)Z (cid:228)D(cid:254)FXFK(cid:209)Z(cid:3)PR(cid:20)H(cid:3)E\Ł(cid:3)X(cid:20)\WD(cid:3)GR(cid:3)SU]HWZRU]HQLD(cid:3)]QDN(cid:209)Z(cid:15)(cid:3)(cid:228)D(cid:254)FXFK(cid:209)Z(cid:3)L(cid:3)]H(cid:16) VWDZ(cid:209)Z(cid:3)(cid:228)D(cid:254)FXFK(cid:209)Z(cid:17) 1DVWSXM(cid:5)F\(cid:3) DSOHW(cid:15)(cid:3) SRND]DQ\(cid:3) QD(cid:3) HNUDQLH(cid:3) Rozpoznawanie danych, informuje o rodzaju dostarczonej danej. (NUDQ Rozpoznawanie danych import janb.view.*; public class Master extends View { // ****************************************************** // public void dataEntered(String[] data) { if(length(data) == 1) dataEntered(data[0]); showResult( Strings: + getString(data)); } public void dataEntered(String data) { if(length(data) == 1) showResult( Char: + data); else showResult( String: + data); } // ****************************************************** // } 2SHUDFMH(cid:3)QD(cid:3)NODWFH ’DQH(cid:3)PR*QD(cid:3)XPLHV]F]D(cid:252)(cid:3)w klatce albo SRELHUD(cid:252)(cid:3)ZSURVW(cid:3)](cid:3)NODWNL(cid:17)(cid:3)6ÆX*(cid:5)(cid:3)GR(cid:3)WHJR(cid:3)IXQNFMH setData i getData. Funkcji setData QDOH*\(cid:3)X*\ZD(cid:252)(cid:3)](cid:3)RVWUR*QR(cid:30)FL(cid:5)(cid:15)(cid:3)SRQLHZD*(cid:3)NROLGXM(cid:5) z(cid:3)HG\FM(cid:5)(cid:3)NODWNL(cid:17) void setData(String data) 8PLHV]F]D(cid:3)Z(cid:3)NODWFH(cid:3)QDSLV(cid:3)RNUH(cid:30)ORQ\(cid:3)SU]H](cid:3)data. String getData() ’RVWDUF]D(cid:3)QDSLV(cid:3)]QDMGXM(cid:5)F\(cid:3)VL(cid:3)Z(cid:3)NODWFH(cid:17) 1DVWSXM(cid:5)F\(cid:3) DSOHW(cid:15)(cid:3) SRND]DQ\(cid:3) QD(cid:3) HNUDQLH(cid:3) Operacje na klatce, rozpoznaje czy w klatce ]QDMGXMH(cid:3)VL(cid:3)OLF]ED(cid:3)FDÆNRZLWD(cid:15)(cid:3)D(cid:3)MH(cid:30)OL(cid:3)WDN(cid:15)(cid:3)WR(cid:3)Z\(cid:30)ZLHWOD(cid:3)MHM(cid:3)kwadrat. (NUDQ Operacje na klatce import janb.view.*; public class Master extends View { public void runView() { boolean viewCleared = true; int oldData = MinInt; while(true) { String data = getData(); if(isIntegral(data)) { int val = getInt(data); if(val != oldData) { oldData = val; clearView(); showResult( Square of ( + val + ) is + val * val ); viewCleared = false; } } else if(!viewCleared) clearView(); } } } 2GWZDU]DQLH(cid:3)ZLGRNX $SOHW(cid:3)SRZLQLHQ(cid:3)E\(cid:252)(cid:3)QDSLVDQ\(cid:3)Z(cid:3)WDNL(cid:3)VSRVyE(cid:15)(cid:3)DE\(cid:3)SR(cid:3)ND*G\P(cid:3)Z\ZRÆDQLX(cid:3)IXQNFML(cid:3)draw- View(cid:15)(cid:3)QDVWSRZDÆR(cid:3)SHÆQH(cid:3)odtworzenie widoku. Funkcja drawView MHVW(cid:3) ]D]Z\F]DM(cid:3) Z\ZRÆ\ZDQD(cid:3) SU]H](cid:3) System(cid:17)(cid:3) ,VWQLHMH(cid:3) MHGQDN(cid:3) PR*li- ZR(cid:30)(cid:252)(cid:3)Z\ZRÆDQLD(cid:3)MHM(cid:3)](cid:3)ZQWU]D(cid:3)SURJUDPX(cid:17)(cid:3)6ÆX*\(cid:3)GR(cid:3)WHJR(cid:3)IXQNFMD(cid:3)redraw. void redraw() :\F]\V]F]D(cid:3)ZLGRN(cid:3)NRORUHP(cid:3)WÆD(cid:3)L(cid:3)Z\ZRÆXMH(cid:3)IXQNFM(cid:3)drawView. void setBackground(Color color) 8VWDZLD(cid:3)NRORU(cid:3)WÆD(cid:3)DSOHWX(cid:3)QD(cid:3)color (np. setBackground(Red)). *G\E\(cid:3)]PLHQQD(cid:3)UHVXOW(cid:3)QLH(cid:3)]RVWD(cid:228)D(cid:3)]DLQLFMRZDQD(cid:15)(cid:3)WR(cid:3)SRGF]DV(cid:3)SLHUZV]H(cid:16) JR(cid:3) Z\ZR(cid:228)DQLD(cid:3) IXQNFML(cid:3) GUDZ9LHZ(cid:3) ]RVWD(cid:228)E\(cid:3) Z\SURZDG]RQ\(cid:3) NRPXQLNDW 6WULQJ(cid:3) SRLQWHU(cid:3) LV(cid:3) 18//(cid:17)(cid:3) .RPXQLNDW(cid:3) WHQ(cid:3) MHVW(cid:3) VZRLVW\P(cid:3) NXULR]XP(cid:15)(cid:3) SR(cid:16) QLHZD(cid:20)(cid:3)Z(cid:3) -DYLH(cid:3)QLH(cid:3)PD(cid:3)ZVND(cid:18)QLN(cid:209)Z(cid:3)(cid:11)SRZLQLHQ(cid:3)EU]PLHŁ(cid:3)6WULQJ(cid:3)UHIHUHQ(cid:16) FH(cid:3)LV(cid:3)18//(cid:12)(cid:17) 1DVWSXM(cid:5)F\(cid:3)DSOHW(cid:15)(cid:3)SRND]DQ\(cid:3)QD(cid:3)HNUDQLH(cid:3)Odtwarzanie widoku(cid:15)(cid:3)Z\(cid:30)ZLHWOD(cid:3)QDSLV(cid:3)ZSURwa- G]RQ\(cid:3)GR(cid:3)NODWNL(cid:15)(cid:3)DOH(cid:3)G]LNL(cid:3)X*\FLX(cid:3)IXQNFML(cid:3)redraw i drawView ]DSHZQLD(cid:15)(cid:3)*H(cid:3)QDSLV(cid:3)WHQ po]RVWDMH(cid:3) QD(cid:3) ZLGRNX(cid:3) QDZHW(cid:3) MH(cid:30)OL(cid:3) QDVW(cid:5)SL(cid:3) SU]HM(cid:30)FLRZH(cid:3) ]DVÆRQLFLH(cid:3) ZLGRNX(cid:3) SU]H](cid:3) REFH okno. import janb.view.*; public class Master extends View { private String result = John von Neuman ; (NUDQ Odtwarzanie widoku public void dataEntered(String[] data) { result = getString(data); redraw(); } public void drawView() { showResult(result, 20); } } (cid:7)URGRZLVNR -H(cid:30)OL(cid:3)SURJUDP(cid:3)od razu dziaÆD, to albo jest banalnie prosty albo zawiera EÆG\(cid:3)ORJLF]QH. ÆG\(cid:3)WH(cid:3)QDOH*\(cid:3)UR]SR]QD(cid:252) i XVXQ(cid:5)(cid:252)(cid:17)(cid:3) ]\QQR(cid:30)FL(cid:3)WH(cid:3)Z\NRQXMH(cid:3)programista. :EUHZ(cid:3) SRZV]HFKQHPX(cid:3) PQLHPDQLX(cid:15)(cid:3) SURJUDPLVWæ(cid:3) QLH(cid:3) MHVW(cid:3) WHQ(cid:15)(cid:3) NWR(cid:3) XPLH QDSLVDŁ(cid:3)SURJUDP(cid:15)(cid:3)DOH(cid:3)WHQ(cid:15)(cid:3)NWR(cid:3)XPLH(cid:3)JR(cid:3) XUXFKRPLŁ(cid:15)(cid:3)SU]HWHVWRZDŁ(cid:3) L(cid:3)XVX(cid:16) QæŁ(cid:3) ]DZDUWH(cid:3) Z(cid:3) QLP(cid:3) E(cid:228)(cid:246)G\(cid:17)(cid:3) ’ODWHJR(cid:3) FKRFLD(cid:20)(cid:3) ZLHOH(cid:3) RV(cid:209)E(cid:3) XPLH(cid:3) SURJUDPR(cid:16) ZDŁ(cid:15)(cid:3)W\ONR(cid:3)QLHOLF]QL(cid:3)Væ(cid:3)SURJUDPLVWDPL(cid:17) Programista nowoczesny(cid:15)(cid:3) D(cid:3) ]ZÆDV]F]D(cid:3) SURJUDPLVWD(cid:3) zawodowy jest przyzwyczajony do NRPIRUWX(cid:15)(cid:3) NWyU\(cid:3) RIHUXM(cid:5)(cid:3) ]LQWHJURZDQH(cid:3) (cid:30)URGRZLVND(cid:3) XUXFKRPLHQLRZH. Pod wspólnym „daFKHP·(cid:3)XPR*OLZLDM(cid:5)(cid:3)RQH(cid:3)Z\NRQ\ZDQLH(cid:3)edycji SURJUDPyZ(cid:3)(UyGÆRZ\FK(cid:3)RUD](cid:3)kompilo- wanie, Æ(cid:5)F]HQLH(cid:3)i budowanie programów. :(cid:30)UyG(cid:3)ZLHOX(cid:3)(cid:30)URGRZLVN(cid:3)XUXFKRPLHQLRZ\FK(cid:3)XÆDWZLDM(cid:5)F\FK(cid:3)SURJUDPRZDQLH(cid:3)Z(cid:3)Javie znaj- GXM(cid:5)(cid:3) VL(cid:3) WDNLH(cid:15)(cid:3) NWyUH(cid:3) NRV]WXM(cid:5)(cid:3) SR(cid:3) NLOND(cid:3) W\VLF\(cid:3) GRODUyZ(cid:15)(cid:3) MDN(cid:3) L(cid:3) WDNLH(cid:15)(cid:3) NWyUH(cid:3) PR*QD za darmo (cid:30)FL(cid:5)JQ(cid:5)(cid:252)(cid:3) ](cid:3) Internetu(cid:17)(cid:3) :(cid:30)UyG(cid:3) W\FK(cid:3) RVWDWQLFK(cid:3) ]QDMGXMH(cid:3) VL(cid:3) (cid:30)URGRZLVNR(cid:3) Kawa, którego przez 3 PLHVL(cid:5)FH(cid:3)PR*QD(cid:3)X*\ZD(cid:252)(cid:3)EH](cid:3)(cid:3)SRWU]HE\(cid:3)]DNXSX(cid:17) =DLQVWDORZDQLH(cid:3)ELEOLRWHNL LEOLRWHND(cid:3)LPSOHPHQWXM(cid:5)FD(cid:3)NODV(cid:3)View wraz z jej dodatkami zajmuje ok. 40 KB i znaj- GXMH(cid:3)VL(cid:3)Z(cid:3)SOLNX(cid:3)View.jar(cid:15)(cid:3)QD(cid:3)G\VNLHWFH(cid:3)GRÆ(cid:5)F]RQHM(cid:3)GR(cid:3)NVL(cid:5)*NL(cid:17)(cid:3)3OLN(cid:3)WHQ(cid:3)PR*QD(cid:3)XPLH(cid:30)FL(cid:252) w katalogu UR]V]HU]H(cid:20)(cid:3) pakietu JDK albo po ewentualnym rozpakowaniu do katalogu janb\view(cid:15)(cid:3)VNRSLRZD(cid:252) 4. ’OD(cid:3)(cid:30)URGRZLVND(cid:3)Kawa 5. ’OD(cid:3)(cid:30)URGRZLVND(cid:3)JBuilder do katalogu projektowego. do katalogu Z\M(cid:30)FLRZHJR. .DWDORJLHP(cid:3)UR]V]HU]H(cid:254)(cid:3)GOD(cid:3)-’.(cid:3)]DLQVWDORZDQHJR(cid:3)Z(cid:3)G(cid:29)?-’.(cid:20)(cid:21)5XQ(cid:3)MHVW G(cid:29)?-’.(cid:20)(cid:21)5XQ?MUH?OLE?H[W(cid:15)(cid:3) D(cid:3) GOD(cid:3) NRPSLODWRUD(cid:3) - XLOGHU(cid:3) (cid:22)(cid:17)(cid:19)(cid:3) ]DLQVWDOR(cid:16) ZDQHJR(cid:3)Z(cid:3)G(cid:29)?- XLOGHU(cid:22)(cid:3)MHVW(cid:3)G(cid:29)?- XLOGHU(cid:22)?MDYD?MUH?OLE?H[W(cid:17) *UDILND 1D(cid:3) ZLGRNX(cid:3) PR*QD(cid:3) Z\NUH(cid:30)OD(cid:252)(cid:3) napisy, odcinki, figury i obszary(cid:17)(cid:3) :(cid:3) FHOX(cid:3) Z\NUH(cid:30)OHQLD obieNWX(cid:3)JUDILF]QHJR(cid:3)QDOH*\(cid:3)SRGD(cid:252)(cid:3)ZVSyÆU]GQH(cid:3)ZLGRNX(cid:3)L(cid:3)Z\EUD(cid:252)(cid:3)QDU]G]LD(cid:3)do wyNUH(cid:30)la- QLD(cid:17)(cid:3):\NUH(cid:30)ODQLH(cid:3)PR*H(cid:3)VL(cid:3)RGE\ZD(cid:252)(cid:3)Z(cid:3)kolorach(cid:15)(cid:3)D(cid:3)QDSLV\(cid:3)PRJ(cid:5)(cid:3)E\(cid:252)(cid:3)Z\NUH(cid:30)ODQH(cid:3)czcion- kami o dowolnie obranym kroju, stylu i rozmiarze. /LQLH(cid:3) V(cid:5)(cid:3) Z\NUH(cid:30)ODQH(cid:3) piórami(cid:15)(cid:3) D(cid:3) QDSLV\(cid:3) REV]DU\(cid:3) V(cid:5)(cid:3) ]DPDORZ\ZDQH(cid:3) SG]ODPL(cid:17)(cid:3) 3G]OH PRJ(cid:5)(cid:3)PDORZD(cid:252)(cid:3)REV]DU\(cid:3)farbami, gradientami i teksturami. :VS(cid:209)(cid:228)U](cid:246)GQH :VSyÆU]GQH(cid:3)V(cid:5)(cid:3)OLF]RQH(cid:3)Z]JOGHP(cid:3)OHZHJR(cid:16)JyUQHJR(cid:3)QDUR*QLND(cid:3)ZLGRNX(cid:17) :(cid:3)FHOX(cid:3)Z\NUH(cid:30)OHQLD 1. Napisu SRGDMH(cid:3)VL(cid:3)ZVSyÆU]GQH(cid:3)OHZHJR(cid:3)NR(cid:20)FD(cid:3)GRP\(cid:30)OQHJR(cid:3)RGFLQND(cid:3)ED]RZHJR(cid:15) na którym napis spoczywa(cid:3)DOER(cid:3)ZVSyÆU]GQH(cid:3)OHZHJR(cid:16)JyUQHJR(cid:3)ZLHU]FKRÆND(cid:3)GR(cid:16) P\(cid:30)OQHJR(cid:3)SURVWRN(cid:5)WD(cid:15)(cid:3)Z(cid:3)NWyU\(cid:3)WHQ(cid:3)QDSLV(cid:3)wpisano. 2. Odcinka(cid:15)(cid:3)SRGDMH(cid:3)VL(cid:3)ZVSyÆU]GQH(cid:3)MHJR(cid:3)NR(cid:20)FyZ(cid:17) 3. Figury, Obszaru i Obiektu SRGDMH(cid:3) VL(cid:3) ZVSyÆU]GQH(cid:3) OHZHJR(cid:16)JyUQHJR(cid:3) ZLHU](cid:16) FKRÆND(cid:3)GRP\(cid:30)OQHJR(cid:3)SURVWRN(cid:5)WD(cid:15)(cid:3)Z(cid:3)NWyU\(cid:3)ZSLVDQR(cid:3)W(cid:3)ILJXU(cid:15)(cid:3)REV]DU(cid:3)DOER(cid:3)RELHNW(cid:17) ’OD(cid:3)RNU(cid:246)J(cid:209)Z(cid:3)SRGDMH(cid:3)VL(cid:246)(cid:3)(cid:8)UHGQLF(cid:246)(cid:15)(cid:3)D(cid:3)GOD(cid:3)NZDGUDW(cid:209)Z(cid:3)ERN(cid:17) 1DVWSXM(cid:5)F\(cid:3)DSOHW(cid:15)(cid:3)SRND]DQ\(cid:3)QD(cid:3)HNUDQLH(cid:3):\NUH(cid:30)ODQLH(cid:3)SLNVHOL(cid:15)(cid:3)Z\NUH(cid:30)OD(cid:3)SLNVHOH(cid:3)Z(cid:3)SU]\(cid:16) padkowych punktach widoku. (NUDQ :\NUH(cid:30)ODQLH(cid:3)SLNVHOL import janb.view.*; public class Master extends View { public void drawView() { int w = getWidth(), h = getHeight(); while(true) { int x = getRandom(0, w), y = getRandom(0, h); if(x == h/2 y == h/2){ clearView(); setColor(getColor()); } drawPixel(x, y); } } } :\NUHV\ 1DMSURVWV]\PL(cid:3)ILJXUDPL(cid:3)JUDILF]Q\PL(cid:3)V(cid:5)(cid:29) pixel, napis,(cid:3)RNU(cid:5)J, kwadrat i odcinek(cid:17)(cid:3)2NUJL L(cid:3)NZDGUDW\(cid:3)PR*QD(cid:3)Z\NUH(cid:30)OD(cid:252)(cid:3)MDNR Cienkie Liniowe 3LHU(cid:30)FLHQLRZH :\SHÆQLRQH (Thin) (Line) (Ring) (Full) void drawPixel(int x, int y) :\NUH(cid:30)OD(cid:3)SLNVHO(cid:3)Z(cid:3)SXQNFLH(cid:3)R(cid:3)ZVSyÆU]GQ\FK(cid:3)(cid:11)x, y). void drawString(String string, int x, int y) :\NUH(cid:30)OD(cid:3)QDSLV(cid:3)string(cid:15)(cid:3)VSRF]\ZDM(cid:5)F\(cid:3)QD(cid:3)RGFLQNX(cid:3)ED]RZ\P(cid:3)R(cid:3)lewym NR(cid:20)FX(cid:3)Z(cid:3)(cid:11)x, y). void drawString(int x, int y, String string) void drawString(int x, int y, String string, Font font) :\NUH(cid:30)OD(cid:3)QDSLV(cid:3)string(cid:15)(cid:3)F]FLRQN(cid:5)(cid:3)ELH*(cid:5)F(cid:5)(cid:3)DOER(cid:3)F]FLRQN(cid:5)(cid:3)font(cid:15)(cid:3)Z(cid:3)GRP\(cid:30)OQ\P(cid:3)SURVWRN(cid:5)FLH R(cid:3)QDUR*QLNX(cid:3)Z(cid:3)(cid:11)x, y). void drawLine(int xA, int yA, int xZ, int yZ) :\NUH(cid:30)OD(cid:3) RGFLQHN(cid:3) Æ(cid:5)F](cid:5)F\(cid:3) SXQNW\(cid:3) (cid:11)xA, yA) i (xZ, yZ). Punkt (xZ, yZ) definiuje jako NR(cid:20)FRZ\. void moveTo(int x, int y) Punkt (x, y) definiuje jako NR(cid:20)FRZ\. void lineTo(int x, int y) :\NUH(cid:30)OD(cid:3)RGFLQHN(cid:3)Æ(cid:5)F](cid:5)F\(cid:3)SXQNW(cid:3)NR(cid:20)FRZ\(cid:3)](cid:3)SXQNWHP(cid:3)(cid:11)x, y). Punkt (x, y) definiuje jako NR(cid:20)FRZ\. void drawCircle(int x, int y, int d) :\NUH(cid:30)OD(cid:3)RNU(cid:5)J(cid:3)R(cid:3)(cid:30)UHGQLF\(cid:3)d(cid:15)(cid:3)ZSLVDQ\(cid:3)Z(cid:3)GRP\(cid:30)OQ\(cid:3)SURVWRN(cid:5)W(cid:3)R(cid:3)ZLHU]FKRÆNX(cid:3)Z(cid:3)(cid:11)x, y). void drawSquare(int x, int y, int s) :\NUH(cid:30)OD(cid:3)NZDGUDW(cid:3)R(cid:3)ERNX(cid:3)s(cid:3)L(cid:3)ZLHU]FKRÆNX(cid:3)Z(cid:3)(cid:11)x, y). void drawEllipse(int x, int y, int w, int h) :\NUH(cid:30)OD(cid:3)HOLSV(cid:3)R(cid:3)(cid:30)UHGQLFDFK(cid:3)w x h(cid:15)(cid:3)ZSLVDQ(cid:5)(cid:3)Z(cid:3)GRP\(cid:30)OQ\(cid:3)SURVWRN(cid:5)W(cid:3)R(cid:3)ZLHU]FKRÆNX(cid:3)Z (x, y). void drawRectangle(int x, int y, int w, int h :\NUH(cid:30)OD(cid:3)SURVWRN(cid:5)W(cid:3)R(cid:3)UR]PLDUDFK(cid:3)w x h(cid:3)L(cid:3)ZLHU]FKRÆNX(cid:3)Z (x, y). void drawDiamond(int x, int y, int w, int h :\NUH(cid:30)OD(cid:3)URPE(cid:3)R(cid:3)UR]PLDUDFK(cid:3)w x h(cid:15)(cid:3)ZSLVDQ\(cid:3)Z(cid:3)GRP\(cid:30)OQ\(cid:3)SURVWRN(cid:5)W(cid:3)R(cid:3)ZLHU]FKRÆNX(cid:3)Z (x, y). void setFill(int fill) Ustawia na fill (Thin, Line, Ring, Full(cid:12)(cid:3) VSRVyE(cid:3) Z\NUH(cid:30)ODQLD(cid:3) RNUJyZ, kwadratów, elips i SURVWRN(cid:5)WyZ. void setFont(Font font) Ustawia na font(cid:15)(cid:3)F]FLRQN(cid:3)GR(cid:3)Z\NUH(cid:30)ODQLD(cid:3)QDSLVyZ(cid:17) void setStroke(int width) void setStroke(int width, double ratio) void setStroke(int width, double ratio, int cap, int join) Ustawia na width V]HURNR(cid:30)(cid:252)(cid:3) SLyUD(cid:3) X*\ZDQHJR(cid:3) GR(cid:3) Z\NUH(cid:30)ODQLD(cid:3) OLQLL(cid:17)(cid:3) 3G]OHP(cid:3) Z\SHÆQLD tylNR(cid:3) F](cid:30)FL(cid:3) SRGOLQLL(cid:3) RNUH(cid:30)ORQH(cid:3) SU]H](cid:3) ratio(cid:17)(cid:3) /LQLH(cid:3) NR(cid:20)F]\(cid:3) ]JRGQLH(cid:3) ](cid:3) cap (CapMiter, CapRound, CapBevel(cid:12)(cid:15)(cid:3)D(cid:3)Æ(cid:5)F]\(cid:3)MH(cid:3)]JRGQLH(cid:3)](cid:3)join (JoinButt, JoinRound, JoinSquare). void setPaint(Paint paint) Ustawia na paint(cid:3)URG]DM(cid:3)SG]OD(cid:3)X*\ZDQHJR(cid:3)GR(cid:3)Z\SHÆQLDQLD(cid:3)REV]DUyZ(cid:17) void setColor(Color color) Ustawia na color(cid:3)URG]DM(cid:3)IDUE\(cid:3)X*\ZDQHM(cid:3)GR(cid:3)Z\NUH(cid:30)ODQLD(cid:3)OLQLL(cid:3)L(cid:3)Z\SHÆQLDQLD(cid:3)REV]DUyZ(cid:17) 3RQLHZD(cid:20)(cid:3)PDORZDQLH(cid:3)IDUEæ(cid:3)Z\NOXF]D(cid:3)VL(cid:246)(cid:3)](cid:3)PDORZDQLHP(cid:3)WHNVWXUæ(cid:3)L(cid:3)JUD(cid:16) GLHQWHP(cid:15)(cid:3) ZL(cid:246)F(cid:3) Z(cid:3) ND(cid:20)GHM(cid:3) FKZLOL(cid:3) RERZLæ]XMH(cid:3) W\ONR(cid:3) RVWDWQLH(cid:3) ](cid:3) Z\ZR(cid:228)D(cid:254) IXQNFML(cid:3)(cid:3)VHW RORU(cid:3)L(cid:3)VHW3DLQW(cid:17) 1DVWSXM(cid:5)F\(cid:3)DSOHW(cid:15)(cid:3)SRND]DQ\(cid:3)QD(cid:3)HNUDQLH(cid:3)’RELHUDQLH(cid:3)SLyU(cid:3)L(cid:3)SG]OL, ilustruje zastosowanie IXQNFML(cid:3)GR(cid:3)Z\ELHUDQLD(cid:3)SLyU(cid:3)L(cid:3)SG]OL(cid:17) (NUDQ Dobieranie piór i(cid:3)SG]OL import janb.view.*; import java.awt.*; public class Master extends View { private int r= 100, w, h; private Paint paint; private Font font; public void initView() { w = getWidth(); h = getHeight(); setFill(Ring); setStroke(50, 0.75); paint = getGradient(Blue, Green); setPaint(paint); font = getFont( Serif , Bold, 150); setFont(font); } public void dataEntered(String data) { showResult( Hello ); } public void drawView() { drawCircle(w/2-r+50, h/2-r+50, 2*r); drawString(10, 10, Kaja ); setStroke(30, 0.5, JoinRound, CapRound); drawLine(50, 200, 50, 250); drawLine(50, 250, 100, 300); } } ]FLRQNL ]FLRQN(cid:3) RSLVXMH(cid:3) krój, styl i rozmiar(cid:17)(cid:3) :(cid:3) ND*G\P(cid:3) Systemie PR*QD(cid:3) VL(cid:3) SRVÆXJLZD(cid:252)(cid:3) VL czcionkami o nazwach: Serif, Sansserif, Monospaced i Dialog, o stylach: Bold, Italic, BoldItalic, Plain RUD](cid:3)R(cid:3)UR]PLDUDFK(cid:3)Z\UD*RQ\FK(cid:3)Z(cid:3)punktach (1 pt = 1/72 cala). ’R(cid:3)XWZRU]HQLD(cid:3)F]FLRQNL(cid:3)X*\ZD(cid:3)VL(cid:3)IXQNFML(cid:3)getFont, a do jej wybrania funkcji setFont. Font getFont(String face, int style, int size) ’RVWDUF]D(cid:3)F]FLRQN(cid:3)R(cid:3)NURMX(cid:3)face, stylu style i rozmiarze size. void setFont(Font font) 8VWDZLD(cid:3)F]FLRQN(cid:3)X*\ZDQ(cid:5)(cid:3)GR(cid:3)Z\NUH(cid:30)ODQLD(cid:3)QDSLVyZ(cid:3)QD(cid:3)font. Font getCurrentFont() ’RVWDUF]D(cid:3)DNWXDOQ(cid:5)(cid:3)F]FLRQN 0HWU\ND =(cid:3)QDSLVHP(cid:3)NWyU\(cid:3)PD(cid:3)E\(cid:252)(cid:3)Z\NUH(cid:30)ORQ\(cid:3)Z\EUDQ(cid:5)(cid:3)F]FLRQN(cid:5)(cid:3)MHVW(cid:3)]ZL(cid:5)]DQD(cid:3)MHJR(cid:3)metryka. Do XWZRU]HQLD(cid:3)PHWU\NL(cid:3)X*\ZD(cid:3)VL(cid:3)IXQNFML(cid:3)getMetrics, a do wykonania operacji na metryce, funkcji getWidth, getHeight, getAscent i getDescent. Metrics getMetrics(String string) ’RVWDUF]D(cid:3)PHWU\N(cid:3)QDSLVX(cid:15)(cid:3)NWyU\(cid:3)Z(cid:3)GDQHM(cid:3)FKZLOL(cid:3)]RVWDÆE\(cid:3)Z\NUH(cid:30)ORQ\(cid:3)]D(cid:3)SRPRF(cid:5)(cid:3)IXQNFML drawString. int getWidth(Metrics metrics) Dostarcza V]HURNR(cid:30)(cid:252)(cid:3)GRP\(cid:30)OQHJR(cid:3)SURVWRN(cid:5)WD(cid:15)(cid:3)Z(cid:3)NWyU\P(cid:3)EG]LH(cid:3)Z\NUH(cid:30)ORQ\(cid:3)QDSLV(cid:3)R(cid:3)PH(cid:16) tryce metrics. int getHeight(Metrics metrics) Dostarcza Z\VRNR(cid:30)(cid:252)(cid:3)GRP\(cid:30)OQHJR(cid:3)SURVWRN(cid:5)WD(cid:15)(cid:3)Z(cid:3)NWyU\P(cid:3)EG]LH(cid:3)Z\NUH(cid:30)ORQ\(cid:3)QDSLV(cid:3)R(cid:3)PH(cid:16) tryce metrics. int getAscent(Metrics metrics) Dostarcza uniesienie Z]JOGHP(cid:3)odcinka bazowego(cid:15)(cid:3)JyUQHM(cid:3)SRGVWDZ\(cid:3)GRP\(cid:30)OQHJR(cid:3)SUR(cid:16) stoN(cid:5)WD(cid:15)(cid:3)Z(cid:3)NWyU\P(cid:3)EG]LH(cid:3)Z\NUH(cid:30)ORQ\(cid:3)QDSLV(cid:3)R(cid:3)PHWU\FH(cid:3)metrics int getDescent(Metrics metrics) Dostarcza REQL*HQLH(cid:3)Z]JOGHP(cid:3)odcinka bazowego(cid:15)(cid:3)GROQHM(cid:3)(cid:3)SRGVWDZ\(cid:3)GRP\(cid:30)OQHJR(cid:3)SUR(cid:16) stoN(cid:5)WD(cid:15)(cid:3)Z(cid:3)NWyU\P(cid:3)EG]LH(cid:3)Z\NUH(cid:30)ORQ\(cid:3)QDSLV(cid:3)R(cid:3)PHWU\FH(cid:3)metrics. 1DVWSXM(cid:5)F\(cid:3)DSOHW(cid:15)(cid:3)SRND]DQ\(cid:3)QD(cid:3)HNUDQLH(cid:3):\NUH(cid:30)ODQLH(cid:3)ILJXU(cid:15)(cid:3)Z\NUH(cid:30)OD(cid:3)QD(cid:3)(cid:30)URGNX(cid:3)ZLGRNX kwadrat o podanym boku, opisuje na nim RNU(cid:5)J(cid:3)L(cid:3)Z\NUH(cid:30)OD(cid:3)MHJR(cid:3)SU]HN(cid:5)WQH. W górnej F](cid:30)FL(cid:3) ZLGRNX(cid:3) Z\NUH(cid:30)OD(cid:3) napis VSRF]\ZDM(cid:5)F\(cid:3) QD(cid:3) RGFLQNX(cid:3) ED]RZ\P(cid:3) RUD](cid:3) QDSLV(cid:3) String otoczony jego REZLHGQL(cid:5). (NUDQ :\NUH(cid:30)ODQLH(cid:3)ILJXU import janb.view.*; import java.awt.*; public class Master extends View { private String string = String ; private int side = 100, w, h; private double sqrt2 = sqrt(2); public void dataEntered(String data) { if(!isIntegral(data)) { beep(); return; } side = getInt(data); redraw(); } public void initView() { w = getWidth(); h = getHeight(); } public void drawView() { int x = (w - side) 1, y = (h - side) 1; drawSquare(x, y, side); drawLine(x, y, x+side, y+side); drawLine(x+side, y, x, y+side); int dd = (int)(side * (sqrt2-1)/2); drawCircle(x-dd, y-dd, side + 2*dd); drawString( Side = + side, 10, 50); drawLine(10, 50, w, 50); setStroke(30); setColor(Red); Font font = getFont( Serif , Bold, 30); drawString(x, y, string, font); Metrics metrics = getMetrics(string, font); int a = getAscent(metrics), d = getDescent(metrics), w = getWidth(metrics), h = getHeight(metrics); setStroke(1); setColor(Blue); drawRectangle(x, y, w, h); } } 2EUD]\ -H(cid:30)OL(cid:3) ]DPLHU]D(cid:3) VL(cid:3) Z\NUH(cid:30)OL(cid:252)(cid:3) REUD](cid:15)(cid:3) XSU]HGQLR(cid:3) SU]\JRWRZDQ\(cid:3) Z(cid:3) SOLNX(cid:3) ](cid:3) UR]V]HU]HQLHP GIF(cid:15)(cid:3)WR(cid:3)QDOH*\ 1. :(cid:3)FHOX(cid:3)]DÆDGRZDQLD(cid:3)REUD]X(cid:3)GR(cid:3)SDPLFL(cid:3)X*\(cid:252)(cid:3)IXQNFML(cid:3)getImage. 2. :(cid:3)FHOX(cid:3)Z\NUH(cid:30)OHQLD(cid:3)REUD]X(cid:3)X*\(cid:252)(cid:3)IXQNFML(cid:3)drawImage. $E\(cid:3)RNUH(cid:30)OL(cid:252)(cid:3)UR]PLDU\(cid:3)]DÆDGRZDQHJR(cid:3)REUD]X(cid:3)PR*QD(cid:3)X*\(cid:252)(cid:3)IXQNFML(cid:3)getWidth i getHeight. Image getImage(String file) (cid:224)DGXMH(cid:3)REUD](cid:3)](cid:3)SOLNX(cid:3)file(cid:3)L(cid:3)GRVWDUF]D(cid:3)RGQR(cid:30)QLN(cid:3)GR(cid:3)UHSUH]HQWXM(cid:5)FHJR(cid:3)JR(cid:3)RELHNWX(cid:17) void drawImage(Image image, int x, int y, int w, int h) void drawImage(Image image, int x, int y) Obraz identyfikowany przez image(cid:3) Z\NUH(cid:30)OD(cid:3) Z(cid:3) WDNL(cid:3) VSRVyE(cid:15)(cid:3) *H(cid:3) ZVSyÆU]GQH(cid:3) MHJR lewego-górnego naUR*QLND(cid:3)]QDMG(cid:5)(cid:3)VL(cid:3)Z(cid:3)SXQNFLH (x, y(cid:12)(cid:15)(cid:3)D(cid:3)MH(cid:30)OL(cid:3)SRGDQR(cid:3)SDUDPHWU\(cid:3)w i h, to przeskalowuje obra](cid:3)L(cid:3)Z\(cid:30)ZLHWOD(cid:3)JR(cid:3)Z(cid:3)SURVWRN(cid:5)FLH(cid:3)R(cid:3)UR]PLDUDFK(cid:3)w x h. int getWidth(Image image) Dostarcza V]HURNR(cid:30)(cid:252)(cid:3)obrazu image. int getHeight(Image image) Dostarcza Z\VRNR(cid:30)(cid:252)(cid:3)obrazu image. 1DVWSXM(cid:5)F\(cid:3)DSOHW(cid:15)(cid:3)SRND]DQ\(cid:3)QD(cid:3)HNUDQLH(cid:3):\NUH(cid:30)OHQLH(cid:3)REUD]X(cid:15)(cid:3)Z\NUH(cid:30)OD(cid:3)QD(cid:3)(cid:30)URGNX(cid:3)ZLGR(cid:16) NX(cid:15)(cid:3)REUD](cid:3)R(cid:3)QD]ZLH(cid:3)SRGDQHM(cid:3)Z(cid:3)NODWFH(cid:17)(cid:3):(cid:3)SROX(cid:3)NRPXQLNDWyZ(cid:3)SRGDMH(cid:3)LQIRUPDFM(cid:3)R(cid:3)UR]mia- rach obrazu. (NUDQ :\NUH(cid:30)OHQLH(cid:3)REUD]X import janb.view.*; import java.awt.*; public class Master extends View { private String defData = Roger.gif ; public void initView() { setData(defData); } public void dataEntered(String data) { // pobranie obrazu Image img = getImage(data); // sprawdzenie, czy obraz istnieje if(data == null) { showMsg( Image does not exist ); return; } (cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)LQW(cid:3)LPJ:(cid:3)(cid:3) (cid:3)JHW:LGWK(cid:11)LPJ(cid:12)(cid:15)(cid:3)(cid:3)(cid:3)(cid:18)(cid:18)(cid:3)V]HURNR(cid:30)(cid:252)(cid:3)REUD]X (cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)LPJ+(cid:3)(cid:3) (cid:3)JHW+HLJKW(cid:11)LPJ(cid:12)(cid:15)(cid:3)(cid:3)(cid:18)(cid:18)(cid:3)Z\VRNR(cid:30)(cid:252)(cid:3)REUD]X (cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)YLHZ:(cid:3) (cid:3)JHW:LGWK(cid:11)(cid:12)(cid:15)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:18)(cid:18)(cid:3)V]HURNR(cid:30)(cid:252)(cid:3)ZLGRNX (cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)YLHZ+(cid:3) (cid:3)JHW+HLJKW(cid:11)(cid:12)(cid:30)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:18)(cid:18)(cid:3)Z\VRNR(cid:30)(cid:252)(cid:3)ZLGRNX // wyprowadzenie komunikatu showMsg( Width = + imgW + , Height = + imgH); imgW = 200; imgH = 200; (cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:18)(cid:18)(cid:3)Z\]QDF]HQLH(cid:3)ZVSyÆU]GQ\FK // lewego-górnego (cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:18)(cid:18)(cid:3)QDUR*QLND(cid:3)REUD]X int x = (viewW - imgW) / 2, y = (viewH - imgH) / 2; (cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:18)(cid:18)(cid:3)Z\NUH(cid:30)OHQLH(cid:3)REUD]X drawImage(img, x, y, imgW, imgH); } public void dataEntered(String[] data) { clearView(); // wyprowadzenie informacji, (cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:18)(cid:18)(cid:3)*H(cid:3)SRGDQR(cid:3)ZLFHM(cid:3)QL*(cid:3)(cid:20)(cid:3)ÆD(cid:20)FXFK showMsg( Error: filename please! ); } } 2ELHNW\ )LJXU]H(cid:3) JUDILF]QHM(cid:3) PR*QD(cid:3) QDGD(cid:252)(cid:3) FHFK\(cid:3) obiektu. Obiekt figurowy przechowuje infor- PDFMH(cid:3)R(cid:3)ZÆD(cid:30)FLZR(cid:30)FLDFK(cid:3)ILJXU\(cid:15)(cid:3)XPR*OLZLD(cid:3)kolekcjonowanie figur oraz odtwarzanie ich EH]SR(cid:30)UHGQLR(cid:3)](cid:3)NROHNFML(cid:17) :(cid:3)FKZLOL(cid:3)XWZRU]HQLD(cid:3)RELHNWX(cid:3)ILJXURZHJR(cid:15)(cid:3)ZVWDZLD(cid:3)VL(cid:246)(cid:3)GR(cid:3)QLHJR(cid:3)ELH(cid:20)æFD F]FLRQN(cid:246)(cid:15)(cid:3)SL(cid:209)UR(cid:15)(cid:3)S(cid:246)G]HO(cid:3)L(cid:3)VSRV(cid:209)E(cid:3)Z\SH(cid:228)QLDQLD(cid:17)(cid:3)7H(cid:3)ZVW(cid:246)SQH(cid:3)XVWDZLHQLD PR(cid:20)QD(cid:3)]PLHQLŁ(cid:3)]D(cid:3)SRPRFæ(cid:3)IXQNFML(cid:3)VHW;;;(cid:17) Figure getPixel(int x, int y) ’RVWDUF]D(cid:3)RGQR(cid:30)QLN(cid:3)GR(cid:3)RELHNWX(cid:3)piksela(cid:3)R(cid:3)ZVSyÆU]GQ\FK(cid:3)(cid:11)x, y). Figure getString(int x, int y, String string) ’RVWDUF]D(cid:3) RGQR(cid:30)QLN(cid:3) GR(cid:3) napisu, zdefiniowanego przez string(cid:15)(cid:3) ZSLVDQHJR(cid:3) Z(cid:3) GRP\(cid:30)OQ\ SURVWRN(cid:5)W(cid:3)R(cid:3)ZLHU]FKRÆNX(cid:3)Z (x, y). Figure getImage(int x, int y, Image image) Figure getImage(int x, int y, int w, int h, Image image) ’RVWDUF]D(cid:3) RGQR(cid:30)QLN(cid:3) GR(cid:3) obrazu zdefiniowanego przez image(cid:15)(cid:3) R(cid:3) ZVSyÆU]GQ\FK(cid:3) (cid:11)x, y) i rozmiarach w x h (do przeskalowania). Figure getLine(int xA, int yA, int xZ, int yZ) ’RVWDUF]D(cid:3)RGQR(cid:30)QLN(cid:3)GR(cid:3)odcinka Æ(cid:5)F](cid:5)FHJR(cid:3)SXQNW\(cid:3)(cid:11)xA, yA) i (xZ, yZ). Figure getCircle(int x, int y, int d) Figure getEllipse(int x, int y, int w, int h) ’RVWDUF]D(cid:3)RGQR(cid:30)QLN(cid:3)GR(cid:3)NRÆD(cid:3)albo elipsy R(cid:3)ZVSyÆU]GQ\FK(cid:3)(cid:11)x, y) i rozmiarach d x d albo w x h. Figure getSquare(int x, int y, int s) Figure getRectangle(int x, int y, int w, int h) ’RVWDUF]D(cid:3)RGQR(cid:30)QLN(cid:3)GR(cid:3)kwadratu albo SURVWRN(cid:5)WD(cid:3)R(cid:3)ZVSyÆU]GQ\FK(cid:3)(cid:11)x, y) i rozmiarach s x s albo w x h. Figure getDiamond(int x, int y, int s) Figure getDiamond(int x, int y, int w, int h) ’RVWDUF]D(cid:3) RGQR(cid:30)QLN(cid:3) GR(cid:3) rombu albo UyZQROHJÆRERNX(cid:3) R(cid:3) ZVSyÆU]GQ\FK(cid:3) (cid:11)x, y) i rozmiarach s x s albo w x h. Metrics getMetrics(Figure figure) -H(cid:30)OL(cid:3)ILJXUD(cid:3)figure MHVW(cid:3)QDSLVHP(cid:15)(cid:3)GRVWDUF]D(cid:3)MHJR(cid:3)PHWU\N(cid:17)(cid:3):(cid:3)SU]HFLZQ\P(cid:3)UD]LH(cid:3)GRVWDUF]D null. void drawFigure(Figure figure) :\NUH(cid:30)OD(cid:3)RELHNW(cid:3)JUDILF]Q\(cid:3)figure. void setXY(Figure figure, int x, int y) Ustawia na (x, y(cid:12)(cid:3)ZVSyÆU]GQH QDUR*QLND(cid:3)SURVWRN(cid:5)WD(cid:15)(cid:3)Z(cid:3)NWyU\(cid:3)ZSLVDQR(cid:3)ILJXU(cid:3)figure. void setSize(Figure figure, int w, int h) Ustawia na w x h(cid:3)UR]PLDU\(cid:3)SURVWRN(cid:5)WD(cid:15)(cid:3)Z(cid:3)NWyU\(cid:3)ZSLVDQR(cid:3)figure. void setStroke(Figure figure, Stroke stroke) Ustawia na stroke pióro NWyU\P(cid:3)EG]LH(cid:3)Z\NUH(cid:30)ODQD(cid:3)ILJXUD(cid:3)figure. void setPaint(Figure figure, Paint paint) Ustawia na paint SG]HO(cid:15)(cid:3)NWyU\P(cid:3)EG]LH(cid:3)Z\NUH(cid:30)ODQD(cid:3)ILJXUD(cid:3)figure. void setColor(Figure figure, Color color) Ustawia na (Paint)color SG]HO(cid:15)(cid:3)NWyU\P(cid:3)EG]LH(cid:3)Z\NUH(cid:30)ODQD(cid:3)ILJXUD(cid:3)figure. void setFont(Figure figure, Font font) Ustawia na font F]FLRQN(cid:15)(cid:3)MDN(cid:5)(cid:3)EG]LH(cid:3)Z\NUH(cid:30)ODQ\(cid:3)QDSLV(cid:3)ILJXU\(cid:3)figure. void setFill(Figure figure, int fill) Ustawia na fill (Thin, Line, Ring, Full(cid:12)(cid:3)VSRVyE(cid:3)Z\SHÆQLHQLD(cid:3)ILJXU\(cid:3)figure. int getX(Figure figure) Dostarcza RGFLW(cid:5)(cid:3)QDUR*QLND(cid:3)SURVWRN(cid:5)WD(cid:15)(cid:3)Z(cid:3)NWyU\(cid:3)ZSLVDQR(cid:3)ILJXU(cid:3)figure. int getY(Figure figure) Dostarcza U]GQ(cid:5)(cid:3)QDUR*QLND(cid:3)SURVWRN(cid:5)WD(cid:15)(cid:3)Z(cid:3)NWyU\(cid:3)ZSLVDQR(cid:3)ILJXU(cid:3)figure. int getWidth(Figure figure) Dostarcza V]HURNR(cid:30)(cid:252)(cid:3)SURVWRN(cid:5)WD(cid:15)(cid:3)Z(cid:3)NWyU\(cid:3)ZSLVDQR(cid:3)ILJXU(cid:3)figure. int getHeight(Figure figure) Dostarcza Z\VRNR(cid:30)(cid:252)(cid:3)SURVWRN(cid:5)WD(cid:15)(cid:3)Z(cid:3)NWyU\(cid:3)ZSLVDQR(cid:3)ILJXU(cid:3)figure. Stroke getStroke(Figure figure) ’RVWDUF]D(cid:3)RGQR(cid:30)QLN(cid:3)GR(cid:3)pióra, NWyU\P(cid:3)EG]LH(cid:3)Z\NUH(cid:30)ODQD(cid:3)ILJXUD(cid:3)figure. Paint getPaint(Figure figure) ’RVWDUF]D(cid:3)RGQR(cid:30)QLN(cid:3)GR(cid:3)SG]OD(cid:15)(cid:3)NWyU\P(cid:3)EG]LH(cid:3)Z\NUH(cid:30)ODQD(cid:3)ILJXUD(cid:3)figure. Paint getColor(Figure figure) ’RVWDUF]D(cid:3)RGQR(cid:30)QLN(cid:3)GR(cid:3)SG]OD(cid:15)(cid:3)NWyU\P(cid:3)EG]LH(cid:3)Z\NUH(cid:30)ODQD(cid:3)ILJXUD(cid:3)figure(cid:17)(cid:3)-H(cid:30)OL(cid:3)SG]HO(cid:3)IL(cid:16) guU\(cid:3)QLH(cid:3)Z\NUH(cid:30)OD(cid:3)IDUE(cid:5)(cid:15)(cid:3)GRVWDUF]D(cid:3)RGQR(cid:30)QLN(cid:3)pusty. Font getFont(Figure figure) ’RVWDUF]D(cid:3)RGQR(cid:30)QLN(cid:3)GR(cid:3)czcionki(cid:15)(cid:3)MDN(cid:5)(cid:3)EG]LH(cid:3)Z\NUH(cid:30)ODQ\(cid:3)QDSLV(cid:3)ILJXU\(cid:3)figure. int getFill(Figure figure) ’RVWDUF]D(cid:3)LQIRUPDFML(cid:3)R(cid:3)VSRVRELH(cid:3)Z\SHÆQLHQLD(cid:3)(cid:11)Thin, Line, Ring, Full) figury figure. -H(cid:8)OL(cid:3)GR(cid:3)ILJXU\(cid:3)QLH(cid:3)VWRVXMH(cid:3)VL(cid:246)(cid:3)IXQNFMD(cid:3)JHW3DLQW(cid:3)DOER(cid:3)JHW)RQW(cid:15)(cid:3)WR(cid:3)ND(cid:20)GD ](cid:3)QLFK(cid:3)GRVWDUF]D(cid:3)QXOO 1DVWSXM(cid:5)F\(cid:3)DSOHW(cid:15)(cid:3)SRND]DQ\(cid:3)QD(cid:3)HNUDQLH(cid:3):\NUH(cid:30)ODQLH(cid:3)RELHNWyZ(cid:15)(cid:3)Z\NUH(cid:30)OD(cid:3)(cid:3)SU]\NÆDGRZH obiekty figurowe. (NUDQ :\NUH(cid:30)ODQLH obiektów import janb.view.*; public class Master extends View { private Figure figure; private int r = 40, d = 2*r, s = d, s2 = s/2, w = 80, w2 = w/2, h = 50, h2 = h/2; public void mouseReleased(int x, int y, int flags) { if(isMeta(flags)) { int what = getRandom(2); if(what == 0) figure = getCircle(x-r, y-r, d); else figure = getSquare(x-s2, y-s2, s); } else { int what = getRandom(3); switch(what) { case 0: // elipsa figure = getEllipse(x-w2, y-h2, w, h); break; (cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)FDVH(cid:3)(cid:20)(cid:29)(cid:3)(cid:3)(cid:3)(cid:18)(cid:18)(cid:3)SURVWRN(cid:5)W figure = getRectangle(x-w2, y-h2, w, h); break; case 2: // romb figure = getDiamond(x-w2, y-h2, w, h); } } (cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:18)(cid:18)(cid:3)RNUH(cid:30)OHQLH(cid:3)Z\JO(cid:5)GX(cid:3)ILJXU\ setColor(figure, getColor()); setFill(figure, Ring); setStroke(figure, getStroke(10)); (cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:18)(cid:18)(cid:3)Z\NUH(cid:30)OHQLH(cid:3)ILJXU\ drawFigure(figure); } } :LGRNL 3R(cid:3)Z\NUH(cid:30)OHQLX(cid:3)ILJXU\(cid:15)(cid:3)SR]RVWDMH(cid:3)RQD(cid:3)QD(cid:3)ZLGRNX(cid:15)(cid:3)DOH(cid:3)QLH(cid:3)GÆX*HM(cid:3)QL*(cid:3)GR(cid:3)FKZLOL(cid:15)(cid:3)JG\(cid:3)ZLGRN zostanie uszkodzony na skutek SU]HVÆRQLFLD(cid:3)przez obce okno albo na skutek ikonizacji RNQD(cid:3)SU]HJO(cid:5)GDUNL(cid:17)(cid:3)’ODWHJR(cid:3)ND*G\(cid:3)Z\NUH(cid:30)ORQ\(cid:3)RELHNW(cid:3)JUDILF]Q\(cid:3)SRZLQLHQ(cid:3)E\(cid:252)(cid:3)]DSDPLtany w bazie danych apletu i odtworzony(cid:3)](cid:3)QLHM(cid:3)SR(cid:3)ND*G\P(cid:3)Z\ZRÆDQLX(cid:3)IXQNFML(cid:3)drawView. ’R(cid:3) XWZRU]HQLD(cid:3) ED]\(cid:3) GDQ\FK(cid:3) VÆX*\(cid:3) IXQNFMD(cid:3) getFigures, a do jej przetwarzania funkcje addFigure, setFigure, getFigure, drawFigures i length. Figures getFigures() ’RVWDUF]D(cid:3)RGQR(cid:30)QLN(cid:3)GR(cid:3)SXVWHM(cid:3)NROHNFML(cid:17) void addFigure(Figures figures, Figure figure) Do kolekcji figures(cid:3)GRNÆDGD(cid:3)ILJXU(cid:3)figure. void setFigure(Figures figures, int pos, Figure figure) 8PLHV]F]D(cid:3)ILJXU(cid:3)figure w kolekcji figures, na pozycji pos. Figure getFigure(Figures figures, int pos) ’RVWDUF]D(cid:3)RGQR(cid:30)QLN(cid:3)GR(cid:3)ILJXU\(cid:15)(cid:3)NWyUD(cid:3)Z(cid:3)NROHNFML(cid:3)figures ]QDMGXMH(cid:3)VL(cid:3)QD(cid:3)SR]\FML(cid:3)pos. void drawFigures(Figures figures) :\NUH(cid:30)OD(cid:3)ZV]\VWNLH(cid:3)ILJXU\(cid:3)NROHNFML(cid:3)figures. int length(Figures figures) ’RVWDUF]D(cid:3)OLF]E(cid:3)HOHPHQWyZ(cid:3)NROHNFML(cid:3)figures. 1DVWSXM(cid:5)F\(cid:3)DSOHW(cid:15)(cid:3)SRND]DQ\(cid:3)QD(cid:3)HNUDQLH(cid:3)Odtwarzanie widoku, napisano w taki sposób, *H(cid:3)ZV]\VWNLH(cid:3)Z\NUH(cid:30)ORQH(cid:3)QD(cid:3)QLP(cid:3)RELHNW\(cid:3)]RVWDQ(cid:5)(cid:3)DXWRPDW\F]QLH(cid:3)RGWZRU]RQH(cid:3)Z(cid:3)Z\SDGNX uszkodzenia widoku. (NUDQ Odtwarzanie widoku import janb.view.*; public class Master extends View { private Figures dataBase = getFigures(); private Figure figure; private int r = 40, d = 2*r, s = d, s2 = s/2, w = 80, w2 = w/2, h = 50, h2 = h/2; public void drawView() { drawFigures(dataBase); } public void mouseReleased(int x, int y, int flags) { if(isMeta(flags)) { int what = getRandom(2); if(what == 0) figure = getCircle(x-r, y-r, d); else figure = getSquare(x-s2, y-s2, s); } else { int what = getRandom(3); switch(what) { case 0: // elipsa figure = getEllipse(x-w2, y-h2, w, h); break; (cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)FDVH(cid:3)(cid:20)(cid:29)(cid:3)(cid:3)(cid:3)(cid:18)(cid:18)(cid:3)SURVWRN(cid:5)W figure = getRectangle(x-w2, y-h2, w, h); break; case 2: // romb figure = getDiamond(x-w2, y-h2, w, h); } } (cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:18)(cid:18)(cid:3)]DSDPLWDQLH(cid:3)Z(cid:3)ED]LH addFigure(dataBase, figure); (cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:18)(cid:18)(cid:3)Z\NUH(cid:30)OHQLH(cid:3)ILJXU\ drawFigure(figure); } } 1DU](cid:246)G]LD 1DU]G]LDPL(cid:3)GR(cid:3)Z\NUH(cid:30)ODQLD(cid:3)V(cid:5)(cid:3)pióro i SG]HO(cid:17)(cid:3) 3LyUR(cid:3) VÆX*\(cid:3) GR(cid:3) Z\NUH(cid:30)ODQLD(cid:3)linii, a S(cid:16) dzel do Z\SHÆQLDQLD(cid:3)REV]DUyZ(cid:17)(cid:3)2EV]DU\(cid:3)PR*QD(cid:3)Z\SHÆQLD(cid:252)(cid:3)IDUE(cid:5), gradientem i tekstuU(cid:5). Do GHILQLRZDQLD(cid:3)SLyU(cid:3)L(cid:3)SG]OL(cid:3)VÆX*(cid:5)(cid:3)IXQNFMH(cid:3)setStroke i setPaint. Color getColor(int red, int green, int blue) ’RVWDUF]D(cid:3) NRORU(cid:3) IDUE\(cid:3) ]GHILQLRZDQ\(cid:3) SU]H](cid:3) VNÆDGQLNL(cid:3) RGB: red, green, blue(cid:15)(cid:3) ND*G\ R(cid:3)ZDUWR(cid:30)FL(cid:3)](cid:3)SU]HG]LDÆX(cid:3)0.. 255. Np. getColor(255,255,0) dostarcza kolor *yÆW\. Color getColor() Dostarcza kolor przypadkowy(cid:15)(cid:3)DOH(cid:3)QLH(cid:3)F]DUQ\(cid:15)(cid:3)QLH(cid:3)V]DU\(cid:3)L(cid:3)QLH(cid:3)ELDÆ\(cid:17) void setColor(Color color) 8VWDZLD(cid:3)NRORU(cid:3)ELH*(cid:5)F\(cid:3)QD(cid:3)color. 0R(cid:20)QD(cid:3) SRV(cid:228)XJLZDŁ(cid:3) VL(cid:246)(cid:3) QDVW(cid:246)SXMæF\PL(cid:3) V\PEROLF]Q\PL(cid:3) R]QDF]HQLDPL NRORU(cid:209)Z Red Green Blue Cyan Magenta Yellow Black White 1DVWSXM(cid:5)F\(cid:3) DSOHW(cid:15)(cid:3) SRND]DQ\(cid:3) QD(cid:3) HNUDQLH(cid:3) Dobieranie kolorów(cid:15)(cid:3) Z\NUH(cid:30)OD(cid:3) ZRNyÆ(cid:3) SXQNWX NOLNQLFLD(cid:3)SLHU(cid:30)FLH(cid:20)(cid:3)Z(cid:3)NRORU]H(cid:3)SU]\SDGNRZ\P(cid:3)RUD](cid:3)SRGDMH(cid:3)MHJR(cid:3)VNÆDGRZH(cid:3)RGB. (NUDQ Dobieranie kolorów import janb.view.*; import java.awt.*; public class Master extends View { private int rad = 50; public void mouseReleased(int x, int y) { x -= rad; y -= rad; Color color = getColor(); setColor(color); setStroke(10); drawCircle(x, y, 2 * rad); int r = getRed(color), g = getGreen(color), b = getBlue(color); showMsg( + r + + g + + b); } } 3L(cid:209)UR 3LyUR(cid:3) PR*H(cid:3) U\VRZD(cid:252)(cid:3) FLHQN(cid:5)(cid:3) OLQL(cid:5)(cid:3) FL(cid:5)JÆ(cid:5)(cid:3) DOER(cid:3) GRZROQHM(cid:3) JUXER(cid:30)FL(cid:3) OLQL(cid:5)(cid:3) FL(cid:5)JÆ(cid:5)(cid:3) DOER SU]HU\ZDQ(cid:5). /LQLD(cid:3) SU]HU\ZDQD(cid:3) VN(cid:228)DGD(cid:3) VL(cid:246)(cid:3) ](cid:3) SRGOLQLL(cid:15)(cid:3) (cid:3) Z(cid:3) NW(cid:209)U\FK(cid:3) Z\VW(cid:246)SXMæ(cid:3) NUHVNL L(cid:3)SU]HUZ\(cid:17)(cid:3)-DNR(cid:3)XG]LD(cid:228)(cid:3)NUHVNL(cid:3)RNUH(cid:8)OD(cid:3)VL(cid:246)(cid:3)VWRVXQHN(cid:3)G(cid:228)XJR(cid:8)FL(cid:3)NUHVNL(cid:3)GR G(cid:228)XJR(cid:8)FL(cid:3)SRGOLQLL(cid:17) void setStroke(int width, double ratio) void setStroke(int width) 8VWDZLD(cid:3)V]HURNR(cid:30)(cid:252)(cid:3)OLQLL(cid:3)QD(cid:3)width L(cid:3)XG]LDÆ(cid:3)NUHVNL(cid:3)QD(cid:3)ratio(cid:17)(cid:3)8G]LDÆ(cid:3)GRP\(cid:30)OQ\(cid:3)Z\QRVL(cid:3)1.0. Stroke getStroke(int width) ’RVWDUF]D(cid:3)SLyUR(cid:3)R(cid:3)V]HURNR(cid:30)FL(cid:3)width. Stroke getCurrentStroke() Dostarcza aktualne pióro. 1DVWSXM(cid:5)F\(cid:3) DSOHW(cid:15)(cid:3) SRND]DQ\(cid:3) QD(cid:3) HNUDQLH(cid:3)Wybieranie piór(cid:15)(cid:3) Z\NUH(cid:30)OD(cid:3) ]HVWDZ(cid:3) OLQLL(cid:3) SR]LR(cid:16) P\FK(cid:3)QDU\VRZDQ\FK(cid:3)]D(cid:3)SRPRF(cid:5)(cid:3)NLONX(cid:3)SLyU(cid:17) (NUDQ Wybieranie piór import janb.view.*; public class Master extends View { public void drawView() { for(int i = 1; i 10; i++) { int j = 10 * i; setColor(Blue); setStroke(1); drawLine(10, 50+j, 120, 50+j); setColor(Red); setStroke(i); drawLine(10, 150+j, 120, 150+j); setColor(Green); setStroke(i, 0.75); drawLine(10, 250+j, 120, 250+j); } drawCircle(200, 50, 100, Line); drawCircle(150, 100, 200, Ring); drawCircle(200, 150, 100, Full); } } 3(cid:246)G]HO 3G]HO(cid:3)PR*H(cid:3)PDORZD(cid:252)(cid:3)IDUE(cid:5), gradientem i WHNVWXU(cid:5). Do tworzenia farb, gradientów i te- NVWXU(cid:15)(cid:3) X*\ZD(cid:3) VL(cid:3) IXQNFML(cid:3) getColor, getGradient i getTexture(cid:15)(cid:3) D(cid:3) GR(cid:3) Z\EUDQLD(cid:3) SG]OD funkcji setColor i setPaint. )XQNFMH(cid:3) VHW RORU(cid:3) L(cid:3) VHW3DLQW(cid:3) Z]DMHPQLH(cid:3) VL(cid:246)(cid:3)
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Java w szkole
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: