home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2001 November / MICD2001_11_NR1.iso / Www / WebArea / index.php@id=65 < prev    next >
Text File  |  2001-09-26  |  27KB  |  506 lines

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4//PL">
  2. <html>
  3. <head>
  4. <title>WEB-AREA.org - serwis webmaster≤w</title>
  5. <link href="style.css" rel="stylesheet" type="text/css">
  6. <LINK REL="SHORTCUT ICON" HREF="favicon.ico"> 
  7. <meta http-equiv="Creation-date" content="28.08.2001">
  8. <meta http-equiv="Reply-to" content="web-area@web-area.org">
  9. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
  10. <meta name="author" content="Jakub & Jan Filipowscy">
  11. <meta name="description" content="Serwis webmasterow. Znajdziesz tu kilka kursow popularnych internetowych jezykow programowania takich jak: HTML, CSS, WML, SGML, XML, PHP, Perl i Java. Zamiescilismy tu rowniez wiele skryptow JavaScript, PHP i CGI. Przeczytac mozna kilka artykulow i sciagnac kilka szablonow. Dla poczatkujacych jest dzial BeginnerZone. ">
  12. <meta http-equiv="keywords" content="WEB-AREA, web-area, web area, web, area, WEB-AREA.org, web-area.org, webara.org,strefa webmastera, strefa, webmastera, webmaster, WEBMASTER, Webmaster, tworzenie stron www, www, strona www, internet, world wide web, design, designerswo, designer, programowanie, jΩzyki, jΩzyk programowania, php, cgi, html, java, javascript, sgml, wml, PHP, CGI, HTML, Java, JavaScript, SGML, WML, wap, standarty, skrypty php, skrypty cgi, applety java, aplety, aplety java, aplety javy, applety javy, javascripty, JavaScripty, skrypty javy, publikowanie witryny, witryna, tworzenie witryn, tworzenie sklep≤w internetowych, edytory html, tekstowe edytory html, projekt syf, szablony, Szablony, free, darmowe, zadarmo, subskrypcja, lista mailingowa, mailing list, lista subskrypcyjna, bannery, formularze, liczniki, ksiΩgi go╢ci, linki, fora, pliki i operacje na nich, statystyki, wyszukiwarki, rankingi, darmowe skrypty, Jakub Filipowski, Jan Filipowski, katalog, Katalog stron zwi▒zanych z tematyk▒ webmasterstwa, webmasterswo, magazyn www, style, CSS, XML, ASP, jΩzyki skryptowe, generatory, anarchizm">
  13. </head>
  14. <body>
  15.  
  16.  
  17. <div align="left">
  18. <table border="0" cellpadding="0" cellspacing="0" width="770">
  19. <tr>
  20. <td width="770" valign="top" colspan="3">
  21.  
  22.     <table border="0" cellpadding="0" cellspacing="0" width="770">
  23.     <tr>
  24.     <td width="166" valign="top"><a href="index.php"><img src="img/logo.gif" border="0" width="166" height="70" alt="WEB-AREA.org - serwis webmaster≤w"></a></td>
  25.     <td width="604" height="70" background="img/gora.gif" align="right"><iframe src="banner.php" MARGINWIDTH="0" MARGINHEIGHT="0" HSPACE="0" VSPACE="0" FRAMEBORDER="0" SCROLLING="NO" WIDTH="468" HEIGHT="60">
  26. </iframe></td>
  27.     </tr></table>
  28.  
  29. </td>
  30. </tr><tr>
  31. <td width="770" valign="top" colspan="3">
  32.     <table border="0" cellpadding="1" cellspacing="0" width="770">
  33.         <tr><form method="post" action="szukaj.php">
  34.         <td width="260">    <input type="text" name="zapytanie" size="15"> <input type="submit" value="SZUKAJ"> <span class="m"><a href="index.php@url=redakcja_2Fszukaj">Jak szukaµ?</a></span></td></form>
  35.         <td width="510">
  36.         
  37.         <p align="center">
  38.         <a href="index.php@id=206" class="gora">Konkurs</a>   
  39.         <a href="subskrypcja/nowa.php" class="gora">Za│≤┐ subskrypcjΩ</a>    
  40.         <a href="index.php@id=128" class="gora">Katalog</a>    
  41.         <a href="forum.php" class="gora">Forum</a>    
  42.         <a href="index.php@id=15" class="gora">BeginnerZone</a>
  43.         
  44.         </td>
  45.     </tr></table>
  46. </td>
  47. </tr>
  48. <tr>
  49. <td width="142" valign="top">
  50.     
  51.     <br>
  52.     <table border="0" cellpadding="0" cellspacing="0" width="142">
  53.     <tr>
  54.     <td width="142" valign="top"><img src="img/menu.gif" border="0" width="142" height="13" alt="MENU"></td>
  55.     </tr>
  56.     <tr>
  57.     <td width="142" valign="top" background="img/okno1.gif">
  58.     <img src="img/s.gif" width="9" height="8"><b class="menu1">KURSY</b><br>
  59.       - <a href="index.php@id=50" class="menu">HTML</a><br>
  60.       - <a href="index.php@id=40" class="menu">CSS</a><br>
  61.       - <a href="index.php@id=62" class="menu">Java</a><br>
  62.       - <a href="index.php@id=145" class="menu">PHP</a><br>
  63.       - <a href="index.php@id=39" class="menu">CGI</a><br>
  64.       - <a href="index.php@id=5" class="menu">ASP</a><br>
  65.       - <a href="index.php@id=182" class="menu">WML</a><br>
  66.       - <a href="index.php@id=190" class="menu">XML</a><br>
  67.       - <a href="index.php@id=159" class="menu">SGML</a><br>
  68.  
  69.     <img src="img/s.gif" width="9" height="8"><b class="menu1">SKRYPTY</b><br>
  70.       - <a href="index.php@id=78" class="menu">JavaScript</a><br>
  71.       - <a href="index.php@id=135" class="menu">PHP</a><br>
  72.       - <a href="index.php@id=30" class="menu">CGI</a><br>
  73.  
  74.     <img src="img/s.gif" width="9" height="8"><b class="menu1">INNE</b><br>
  75.       - <a href="index.php@id=59" class="menu">Szablony</a><br>
  76.       - <a href="forum.php" class="menu">Forum</a><br>
  77.       - <a href="index.php@id=61" class="menu">Webmasterska lista</a><br>
  78.       - <a href="index.php@id=128" class="menu">Katalog</a><br>
  79.       - <a href="index.php@id=15" class="menu">BeginnerZone</a><br>
  80.       - <a href="index.php@id=206" class="menu">Konkurs</a><br>
  81.     
  82.     <img src="img/s.gif" width="9" height="8"><b class="menu1">SUBSKRYPCJA</b><br>
  83.       - <a href="subskrypcja/nowa.php" class="menu">Za│≤┐</a><br>
  84.       - <a href="subskrypcja/admin.php" class="menu">Administracja</a><br>
  85.  
  86.     <img src="img/s.gif" width="9" height="8"><b class="menu1">REDAKCJA</b><br>
  87.       - <a href="index.php@id=156" class="menu">Sk│ad</a><br>
  88.       - <a href="index.php@id=157" class="menu">Wsp≤│praca</a><br>
  89.       - <a href="index.php@id=158" class="menu">Reklama</a></td>
  90.     </tr>
  91.     <tr>
  92.     <td width="142" valign="top"><img src="img/okno2.gif" border="0" width="142" height="10"></td>
  93.     </tr></table>
  94.  
  95. </td>
  96. <td width="486" valign="top"><br>
  97.     <div align="center">
  98.     <table border="0" cellpadding="0" cellspacing="0" width="460">
  99.     <tr>
  100.     <td width="460" valign="top"><table border="0" cellpadding="0" cellspacing="0" width="460">
  101.         <tr>
  102.         <td width="460" valign="top"><img src="img/zobacz.gif" border="0" width="460" height="13" alt="ZOBACZ JESZCZE"></td>
  103.         </tr>
  104.         <tr>
  105.         <td width="460" valign="top" background="img/okno11.gif"><div align="center">
  106.                 <table border="0" cellpadding="0" cellspacing="0" width="450"><tr><td width="450"><a class="menu" href="index.php@id=63">Wpowadzenie</a> 
  107.  <a class="menu" href="index.php@id=64">Historia jΩzyka Java</a> 
  108.  <a class="menu" href="index.php@id=66">Typy podstawowe</a> 
  109.  <a class="menu" href="index.php@id=67">Operatory i ich priorytety</a> 
  110.  <a class="menu" href="index.php@id=68">S│owa kluczowe Javy</a> 
  111.  <a class="menu" href="index.php@id=69">Instrukcje steruj▒ce wykonywaniem programu</a> 
  112.  <a class="menu" href="index.php@id=70">Klasy</a> 
  113.  <a class="menu" href="index.php@id=71">Metody i pola</a> 
  114.  <a class="menu" href="index.php@id=72">Dziedziczenie klas</a> 
  115.  <a class="menu" href="index.php@id=73">Interfejsy</a> 
  116.  <a class="menu" href="index.php@id=74">Pakiety</a> 
  117.  <a class="menu" href="index.php@id=75">Wyj▒tki</a> 
  118.  <a class="menu" href="index.php@id=76">W▒tki</a> 
  119.  <a class="menu" href="index.php@id=77">Funkcje specjalne</a> </td></tr></table></div></td>
  120.         </tr>
  121.         <tr>
  122.         <td width="460" valign="top"><img src="img/okno21.gif" border="0" width="460" height="10"></td>
  123.         </tr></table><span class="nag">Kurs Javy</span><br>
  124.  
  125.  
  126. <p><hr size="1" noshade></p>
  127. <p align="center"><a name="WstΩp">WstΩp</a></p>
  128. <p>Java to nowoczesny, w pe│ni obiektowy jΩzyk programowania, dziedzicz▒cy wszystkie pozytywne cechy technologii 
  129. obiektowej i pozwalaj▒cy na p│ynne przej╢cie z etapu projektowania obiektowego do etapu pisania programu. 
  130. Tworzenie aplikacji odbywa siΩ w kategoriach klas, obiekt≤w, interfejs≤w i pakiet≤w. Klasa to definicja (szkielet) 
  131. obiektu, okre╢laj▒ca typy atrybut≤w i metody (w podej╢ciu strukturalnym zmienne i procedury). Obiekt to konkretny 
  132. egzemplarz danej klasy, dziΩki kt≤remu (za po╢rednictwem wywo│ania dostΩpnych metod) przeprowadzamy proces 
  133. przetwarzania danych programu. Java pozwala na definiowanie tzw. klas abstrakcyjnych, s│u┐▒cych jedynie jako 
  134. klasy bazowe, kt≤re nie pozwalaj▒ na tworzenie obiekt≤w. Wykorzystanie klas abstrakcyjnych jest uzasadnione w 
  135. przypadku program≤w zawieraj▒cych wiele klas o podobnej strukturze. (np. dla klas samoch≤d_osobowy, 
  136. samoch≤d_dostawczy i samoch≤d_sportowy budujemy klasΩ bazow▒ w postaci klasy abstrakcyjnej samoch≤d). 
  137. Uproszczon▒ form▒ klasy abstrakcyjnej jest interfejs, dziΩki kt≤remu deklarujemy metody, kt≤re zostan▒ 
  138. zaimplementowane przez inne klasy. Zrezygnowano z mechanizmu wielokrotnego dziedziczenia, kt≤ry mo┐e byµ 
  139. zast▒piony przez odpowiednie u┐ycie klas abstrakcyjnych i interfejs≤w. Podobnie jak w jΩzyku Ada wprowadzono 
  140. pojΩcie pakietu. Grupowanie klas i interfejs≤w w pakiety znacznie zwiΩksza czytelno╢µ kodu ╝r≤d│owego 
  141. programu. Po przeprowadzeniu kompilacji programu, ka┐da klasa umieszczana jest w oddzielnym pliku, dziΩki 
  142. czemu modyfikacja jednej klasy nie poci▒ga za sob▒ rekompilacji pozosta│ych fragment≤w programu, w kt≤rych 
  143. wystΩpuj▒ odwo│ania do tej klasy. Wprowadzono sp≤jny system podstawowych typ≤w danych. Dla programist≤w 
  144. C/C++ wa┐n▒ wydaje siΩ byµ informacja, i┐ Java nie zawiera typ≤w danych: pointer, struct i union. Typy te mog▒ 
  145. byµ z powodzeniem zast▒pione poprzez odpowiednie u┐ycie klas i obiekt≤w. UsuniΩcie instrukcji goto ca│kowicie 
  146. wymazuje wspomnienia o niestrukturalnych technikach tworzenia oprogramowania.</p>
  147. <p><hr></p>
  148. <p align="center"><a name="NarzΩdzia potrzebne do tworzenia w Javie">NarzΩdzia potrzebne do pisania w Javie</a></p>
  149. <p>Do tworzenia applet≤w Javy jest potrzebny specjalny program zwany <i>kompilatorem</i>, kt≤ry przekszta│ca instrukcje 
  150. Javy, zrozumia│e dla cz│owieka, na tzw. <i>bytecode</i> (kod bajtowy, kod wirtualny), czyli zera i jedynki, zrozumia│e dla 
  151. przegl▒darki. Jesli siΩ zamierza tworzyµ programy w jΩzyku takim jak C++, trzeba kupiµ kompilator tego jΩzyka u 
  152. jego dystrybutora. Inaczej ma siΩ rzecz z kompilatorem Javy - <b>Java Developers Kit</b>, kt≤ry mo┐na przekopiowaµ 
  153. bezp│atnie, korzystaj▒c z internetu, a konkretnie ze strony WWW firmy sun o adresie: <a href="http://java.sun.com">http://java.sun.com</a>. Strona ta 
  154. pozwala uzyskaµ wersje Javy przeznaczone dla system≤w Windows 95, Windows NT (<b>ale nie ma wersji dla 
  155. Windows 3.x !!!</b>), Macintosha oraz system≤w opartych o UNIX (tak┐e wersjΩ dla LINUX-a). Co najwa┐niejsze Java 
  156. Developers Kit jest stale aktualizowany. Pozwala to korzystaµ z najnowszych wersji pakietu bez ponoszenia 
  157. dodatkowych op│at.</p>
  158. <p>W zale┐nosci od rodzaju wersji kopiowanego pakietu Java Developers Kit czynnosci, kt≤re trzeba wykonaµ w celu 
  159. jego zaintalowania, r≤┐ni▒ siΩ od siebie. Jednak na stronie WWW firmy Sun mo┐na znale╝µ instrukje wyjasniaj▒ce 
  160. krok po kroku przebieg instalacji pakietu dla danego rodzaju systemu.</p>
  161. <p><hr></p>
  162. <p align="center"><a name="Zawartosµ pakietu Java Developers Kit">Zawartosµ pakietu Java Developers Kit</a></p>
  163. <p>W sk│ad Java Developers Kit wchodzi kompilator Javy, kt≤rego mo┐na u┐ywaµ do tworzenia applet≤w. Opr≤cz tego 
  164. w pakiecie tym mo┐na znale╝µ kilka program≤w narzΩdziowych, tskich jak Applet Viewer, uno┐liwiaj▒cy 
  165. uruchamianie i wyswietlanie applet≤w, debuger, pomagaj▒cy znajdowaµ i usuwaµ b│Ωdy w tworzonych appletach, a 
  166. tak┐e tak zwany generator dokument≤w, upraszczaj▒cy przygotowywanie dokumentacji program≤w. Poni┐ej 
  167. zestawiono kilka wybranych program≤w zawartych w pakiecie Java Developers Kit. 
  168. <table border="0" width="100%">
  169. <tr>
  170. <td><p><b>Program</b> </td>
  171. <td><p><b>Zastosowanie</b></td>
  172. </tr><tr>
  173. <td><p><b>java</b></td>
  174. <td><p>Interpreter Javy, pozwalaj▒cy uruchamiaµ samodzielnie programy</td>
  175. </tr><tr>
  176. <td><p><b>javac</b></td>
  177. <td><p>Kompilator Javy.</td>
  178. </tr><tr>
  179. <td><p><b>javadoc</b></td>
  180. <td><p>Generator dokument≤w Javy.</td>
  181. </tr><tr>
  182. <td><p><b>javah</b></td>
  183. <td><p>generator plik≤w C, tworz▒cy pliki nag│≤wkowe oraz pliki ╝r≤d│owe zawieraj▒ce tekst potrzebny do 
  184. definiowania klas.</td>
  185. </tr><tr>
  186. <td><p><b>javap</b></td>
  187. <td><p>Disasembler Javy.</td>
  188. </tr><tr>
  189. <td><p><b>jdb</b></td>
  190. <td><p>Debuger Javy.</td>
  191. </tr></table>
  192. <p>Opr≤cz kompilatora i program≤w narzΩdziowych Java Developers Kit zawiera wiele przyk│adowych applet≤w, 
  193. kt≤rych tekst ╝r≤d│owy warto analizowaµ po tp, aby pog│Ωbiµ swoj▒ znajomosµ Javy.</p>
  194. <p><hr></p>
  195. <p align="center"><a name="Hot Java">Co to jest Hot Java?</a></p>
  196. <p>Wielu u┐ytkownik≤w nie znaj▒cych jΩzyka programowania Java myli go czΩsto z Hot Jav▒, przegl▒dark▒ napisana w 
  197. Javie.Kr≤tko m≤wi▒c, Java jest jΩzykiem programowania u┐ywanym przez programist≤w do tworzenia program≤w i 
  198. applet≤w, podczas gdy Hot Java jest przegl▒dark▒, tak▒ sam▒, jak na przyk│ad Netscape Navigator. Tym co decyduje o 
  199. niepowtarzalnosci Hot Javy, jest fakt, ┐e zosta│▒ ona w ca│osci napisana w Javie. Kiedy rozpoczniesz testowanie 
  200. tworzonych applet≤w Javy, mo┐esz uruchomiµ Hot JavΩ, gdy┐ firma Sun pozwala na jej przekopiowanie ze swojej 
  201. strony WWW.</p>
  202. <p><hr></p>
  203. <p align="center"><a name="Pakiety">Pakiety Javy</a></p>
  204. <p>Mocn▒ stron▒ Java s▒ bogate biblioteki. Podstawowe pakiety, kt≤rych metody mog▒ zostaµ wykorzystane w trakcie 
  205. tworzenia oprogramowania to: 
  206. <table border="0" width="100%">
  207. <tr>
  208. <td width="30%" align="left" valign="top"><ul type="disc">
  209. <li><b>java.lang</b> 
  210. </ul></td>
  211. <td align="left" valign="top"><p><i>pakiet zawieraj▒cy podstawowe klasy Java (automatycznie importowany do 
  212. ka┐dego programu);</i></td>
  213. </tr><tr>
  214. <td align="left" valign="top"><ul type="disc">
  215. <li><b>java.applet</b> 
  216. </ul></td>
  217. <td align="left" valign="top"><p><i>pakiet pozwalaj▒cy na tworzenie aplet≤w (ang. applet);</i></td>
  218. </tr><tr>
  219. <td align="left" valign="top"><ul type="disc">
  220. <li><b>java.awt</b> 
  221. </ul></td>
  222. <td align="left" valign="top"><p><i>(AWT - Abstract Window Toolkit) zintegrowany pakiet klas przeznaczony do 
  223. wspomagania tworzenia interfejsu graficznego u┐ytkownika</i> </td>
  224. </tr><tr>
  225. <td align="left" valign="top"><ul type="disc">
  226. <li><b>java.awt.peer</b> 
  227. </ul></td>
  228. <td align="left" valign="top"><p><i>pakiet zawieraj▒cy wyspecjalizowane dla konkretnej platformy komponenty AWT</i> </td>
  229. </tr><tr>
  230. <td align="left" valign="top"><ul type="disc">
  231. <li><b>java.awt.image</b> 
  232. </ul></td>
  233. <td align="left" valign="top"><p><i>pakiet przeznaczony do zarz▒dzania i obr≤bki obrazu</i></td>
  234. </tr><tr>
  235. <td align="left" valign="top"><ul type="disc">
  236. <li><b>java.io</b> 
  237. </ul></td>
  238. <td align="left" valign="top"><p><i>pakiet zawieraj▒cy klasy pozwalaj▒ce na zarz▒dzanie wej╢ciowym i wyj╢ciowym 
  239. strumieniem danych (np. pisanie do pliku)</i></td>
  240. </tr><tr>
  241. <td align="left" valign="top"><ul type="disc">
  242. <li><b>java.net</b> 
  243. </ul></td>
  244. <td align="left" valign="top"><p><i>pakiet wspomagaj▒cy tworzenie program≤w sieciowych (adresy URL, gniazdka 
  245. TCP i UDP, adresy IP, ... )</i></td>
  246. </tr><tr>
  247. <td align="left" valign="top"><ul type="disc">
  248. <li><b>java.util</b> 
  249. </ul></td>
  250. <td align="left" valign="top"><p><i>pakiet ╢wiadcz▒cy inne us│ugi (np. generacja liczb losowych, operacje na 
  251. ci▒gach znak≤w, ...)</i></td>
  252. </tr></table>
  253. <h2><hr></h2>
  254. <p align="center"><a name="Zaczynamy pisanie">Zaczynamy pisanie programu.</a></p>
  255. <p>Najpowszechniejsz▒ form▒ wykorzystania jΩzyka Java jest pisanie aplet≤w (ang. <i>applet</i>). Aplet to program, kt≤rego 
  256. uruchomienie na okre╢lonej platformie wymaga instalacji tzw. wirtualnej maszyny Java. Kod ╝r≤d│owy apletu nie 
  257. podlega kompilacji do kodu wewnΩtrznego maszyny - aplet kompilowany jest do postaci kodu po╢redniego<b><i> 
  258. </i></b><i>bytecode</i>. Wirtualna maszyna Java to nic innego jak interpreter tego kodu. DziΩki takiemu podej╢ciu aplety s▒ 
  259. ca│kowicie niezale┐ne od przyjΩtej platformy sprzΩtowej i systemu operacyjnego. Dystrybucja program≤w Java w 
  260. sieci Internet odbywa siΩ poprzez äwplatanieö aplet≤w do dokument≤w HTML. Warunkiem ogl▒dania efektu 
  261. do│▒czenia apletu do strony HTML jest posiadanie przegl▒darki WWW, wyposa┐onej w interpreter kodu 
  262. po╢redniego <i>bytecode</i><b><i> </i></b>(np. Netscape Navigator 2.01 - wersja dla Windows 95). Opr≤cz mo┐liwo╢ci wywo│ania 
  263. apletu na okre╢lonej stronie, mo┐emy tak┐e dokonaµ przekazania dowolnej ilo╢µ parametr≤w, okre╢laj▒cych jego 
  264. spos≤b dzia│ania. Oznacza to zatem, ┐e jeste╢my w stanie tworzyµ programy uniwersalne. Niezwykle istotnym 
  265. faktem jest brak dodatkowych wymaga± wzglΩdem serwera WWW - ca│y ciΩ┐ar realizacji apletu spoczywa na naszej, 
  266. pracujacej lokalnie przegl▒darce WWW. Interpreter <i>bytecode</i>, pracuje w okre╢lonym ╢rodowisku, zawierajacym 
  267. szereg wykonywalnych program≤w, tworz▒cych w pewnym sensie bibliotekΩ klas Javy typu <i>run-time</i>. Dzieki temu, 
  268. niekiedy skomplikowane operacje mog▒ byµ wykonane za pomoc▒ apletu zawieraj▒cego kilka linii kodu. </p>
  269. <p>Wszystkie aplety tworzone s▒ jako klasy potomne klasy bazowej <b>Applet</b>. Java jest szczeg≤lnie dogodnym 
  270. narzΩdziem do przeprowadzania prezentacji audiowizualnych. Klasa AudioClip dostarcza prostego mechanizmu 
  271. odtwarzania d╝wiΩku.</p>
  272. <ul><p>AudioClip X;/* deklaracja obiektu klasy AudioClip */</p>
  273. X=getAudioClip(getDocumentBase(),ö./melodia.auö);/* inicjalizacja obiektu */
  274. <p>/* sterowanie odtwarzaniem d╝wiΩku */</p>
  275. X.play();
  276. X.loop();
  277. <p>X.stop();</p>
  278. </ul>
  279. <p>W r≤wnie prosty spos≤b dokonujemy wy╢wietlania obraz≤w graficznych.</p>
  280. <ul><p>Image Y;/* deklaracja obiektu klasy Image */</p>
  281. <p>Y=getImage(getCodeBase(),ö./obrazek.gifö);/* inicjalizacja obiektu */</p>
  282. <p>public void paint(Graphics g)</p>
  283. <p>{</p>
  284. <p>...</p>
  285. <p>/* wy╢wietla obraz (lewy g≤rny r≤g w punkcie o wsp≤│rzΩdnych (10,60) */</p>
  286. g.drawImage(Y,10,60,this);</h3>
  287. <p>...</p>
  288. <p>}</p>
  289. </ul>
  290. <p>Przeprowadzenie prostej animacji sprowadza siΩ to inicjalizacji w▒tku (ang. <i>thread</i>) i wielokrotnego wy╢wietlania 
  291. r≤┐nych obraz≤w graficznych w tym samym miejscu ekranu. </p>
  292. <p><hr></p>
  293. <p align="center"><a name="Zdarzenia">Zdarzenia</a></p>
  294. <p>Jak ju┐ wspomnia│em wcze╢niej, Java pozwala na tworzenie w pe│ni interakcyjnych aplikacji. JΩzyk oferuje znaczne 
  295. udogodnienia w zakresie realizacji mechanizmu odpowiedzi programu na zdarzenia wywo│ane przez okre╢lone 
  296. dzia│ania u┐ytkownika (np. naci╢niΩcie przycisku myszki, w okre╢lonym polu ekranu, spowoduje odtwarzanie 
  297. d╝wiΩku). Wyr≤┐niamy zdarzenia niskiego i wysokiego poziomu. Zdarzenia niskiego poziomu postrzegamy w 
  298. kategoriach sprzΩtowych (np. fakt naci╢niΩcia przycisku myszki). M≤wi▒c o zdarzeniach wysokiego poziomu, mamy 
  299. na my╢li wszelkie dzia│ania u┐ytkownika dokonywane na elementach interfejsu graficznego programu (np. 
  300. wpisanie tekstu w pole TextField). Kluczow▒ rolΩ, w odniesieniu do zagadnienia obs│ugi zdarze±, odgrywa klasa 
  301. <b>Component </b>(pakiet AWT). Metody tej klasy pozwalaj▒ na przeprowadzenia sprawnej reakcji systemu na wymuszenia 
  302. u┐ytkownika, a ich wykorzystanie sprowadza siΩ do dostosowania okre╢lonej metody do specyfiki programu. 
  303. Metoda <i>handleEvent()</i> jest najbardziej og≤ln▒ z nich i umo┐liwia na implementacjΩ obs│ugi niemal ka┐dego 
  304. zdarzenia, jednak stosowanie jej wymaga od programisty dobrej znajomo╢ci ╢rodowiska pracy programu. U┐ycie 
  305. <i>handleEvent()</i> w przypadku aplikacji, w kt≤rych szczeg≤lnie zale┐y nam na poprawno╢ci pracy programu, mo┐e 
  306. okazaµ siΩ zbyt ryzykowne, dlatego te┐ istnieje zestaw prostych w zastosowaniu metod, dedykowanych do obs│ugi 
  307. tylko jednego, konkretnego zdarzenia: 
  308. <ul type="disc">
  309. <li>mouseMove() - obs│uga myszki 
  310. <li>mouseDown() 
  311. <li>mouseDrag() 
  312. <li>mouseUp() 
  313. <li>mouseEnter() 
  314. <li>mouseExit() 
  315. <li>keyUp() - obs│uga klawiatury 
  316. <li>keyDown() 
  317. <li>getFocus() 
  318. <li>lostFocus() 
  319. </ul>
  320. <p>Na uwagΩ zas│uguje tak┐e metoda <i>action()</i>, umo┐liwiaj▒ca realizacjΩ obs│ugi zdarze± wysokiego poziomu i zdarze± 
  321. warunkowych (np. r≤wnoczesne naci╢niΩcie przycisku myszki i klawiatury). Ka┐da z wymienionych powy┐ej metod 
  322. powinna posiadaµ przynajmniej jeden argument wywo│ania - obiekt <i>Event</i>. Egzemplarz klasy <i>Event</i> tworzony jest 
  323. automatycznie, wraz z wyst▒pieniem dowolnego zdarzenia. Podstawowym zadaniem tego obiektu jest gromadzenie 
  324. danych o rodzaju zaistnia│ego zdarzenia, czasie jego wyst▒pienia, obiekcie kt≤rego dotyczy│o (np. zdarzenie 
  325. wci╢niΩcia przycisku <i>GUI</i> odnosi siΩ do obiektu <i>Button),</i> itp. . <i>Event</i> stanowi bazΩ informacyjn▒ dla mechanizmu 
  326. odpowiedzialnego za prowadzenie prawid│owej reakcji programu na dzia│ania u┐ytkownika.</p>
  327. <h3 align="center"><hr></h3>
  328. <p align="center"><a name="Deklaracja apletu w dokumencie">Deklaracja apletu w dokumencie HTML</a></p>
  329. <p><b><applet width="100" height="100">
  330. </applet>
  331. </b> koniec bloku deklaracji </p>
  332. <p>Np.</p>
  333. <p><tt>... <br>
  334. <applet code="Animacja.class" codebase="usr/jaro/anim/" name="Animacja" width="100" height="100">
  335. <param name="szybkosc_animacji" value="500">
  336. </applet>
  337.  <br></tt><tt><a href="usr/jaro/Animacja.java"> 
  338. Kod programu</a></tt><tt><br>
  339. ... <br></tt> </p>
  340. <p><hr></p>
  341. <p align="center"><a name="Typowa struktura apletu">Typowa struktura apletu Java</a></p>
  342. <ul><p><tt>import java.awt.*; import java.applet.*; <br>
  343. public class m≤j_pierwszy_aplet extends Applet implements Runnable {<br>
  344. <br>
  345. ... ZADEKLARUJ ZMIENNE PROGRAMU </tt></p>
  346. <p>/* np. Thread wÜtek_mojego_programu; int szybko╢µ_mojego_programu; */</p>
  347. <p>public void init() <br>
  348. { <br>
  349. <br>
  350. ... OKREªL WST╩PNE WARTOªCI ZMIENNYCH <br>
  351. <br>
  352. /* np. szybko╢µ_mojego_programu=100; */ <br>
  353. <br>
  354. ... OKREªL ROZMIAR POLA WYªWIETLANEGO PROGRAMU <br>
  355. <br>
  356. /* np. resize(100,100); */ <br>
  357. }<br>
  358. <br>
  359. ... NAPISZ METODY PROGRAMU<br>
  360. <br>
  361. /* np. public void metoda_mojego_apletu() <br>
  362. { <br>
  363. szybko╢µ_mojego_programu++; <br>
  364. } <br>
  365. */</p>
  366. <p>/* wy╢wietlenie strony graficznej programu */ <br>
  367. public void paint(Graphics g) <br>
  368. {<br>
  369. ...</p>
  370. <p>/* np. <br>
  371. g.drawString("Szybko╢µ mojego programu ma warto╢µ:",10,10); 
  372. g.drawString(String.valueOf(szybko╢µ_mojego_programu),80,10); <br>
  373. */ <br>
  374. } </p>
  375. <p>public void start() <br>
  376. { <br>
  377. wÜtek_mojego_programu =new Thread(this); <br>
  378. wÜtek_mojego_programu .start(); <br>
  379. }</p>
  380. <p>public void stop()<br>
  381. { <br>
  382. wÜtek_mojego_programu .stop(); <br>
  383. }</p>
  384. <p>public void run() <br>
  385. { <br>
  386. while(true) <br>
  387. { <br>
  388. try { <br>
  389. Thread.currentThread().sleep(szybko╢µ_mojego_programu);<br>
  390. }<br>
  391. catch (InterruptedException e ){}<br>
  392. <br>
  393. ... WYWOúAJ METODY PROGRAMU <br>
  394. /* np. metoda_mojego_apletu(); */</p>
  395. <p>/* aktualizacja grafiki */ <br>
  396. repaint(); <br>
  397. } } } </p>
  398. </ul>
  399. <br></td>
  400.     </tr></table>
  401.     </div>
  402. </td>
  403. <td width="142" valign="top">
  404.  
  405.         <br>
  406.         <table border="0" cellpadding="0" cellspacing="0" width="142">
  407.         <tr>
  408.         <td width="142" valign="top"><img src="img/login.gif" border="0" width="142" height="13" alt="LOGIN"></td>
  409.         </tr>
  410.         <tr>
  411.         <td width="142" valign="top" background="img/okno1.gif">
  412.         
  413.             
  414.             <div align="center">
  415.             <table cellpadding="0" cellspacing="2" border="0" width="98%">
  416.             <form method="post" action="subskrypcja/login.php">
  417.             <tr><td width="30%"><span class="t">Login:</span></td><td width="68%"><input type="text" name="login" size="15" class="login"></td></tr>
  418.             <tr><td width="30%"><span class="t">Has│o:</span></td><td width="68%"><input type="password" name="haslo" size="15" class="login"></td></tr>
  419.             
  420.             <tr><td colspan="2"><center><input type="image" src="img/ok.gif"></td></tr>
  421.             </form></table></div>
  422.         
  423.         </td>
  424.         </tr>
  425.         <tr>
  426.         <td width="142" valign="top"><img src="img/okno2.gif" border="0" width="142" height="10"></td>
  427.         </tr></table>
  428.  
  429.         <br>
  430.         <table border="0" cellpadding="0" cellspacing="0" width="142">
  431.         <tr>
  432.         <td width="142" valign="top"><img src="img/art.gif" border="0" width="142" height="13" alt="ARTYKULY"></td>
  433.         </tr>
  434.         <tr>
  435.         <td width="142" valign="top" background="img/okno1.gif">
  436.         
  437.         <span class="m">
  438.         
  439.          -<a href="index.php@id=1" class="menu">"Edytory HTML'a"</a><br>
  440.          -<a href="index.php@id=2" class="menu">"Publikowanie witryny"</a><br>
  441.          -<a href="index.php@id=3" class="menu">"PHP w domu"</a><br>
  442.          -<a href="index.php@id=4" class="menu">"Przeszukiwanie stron"</a><br>
  443.          -<a href="index.php@id=204" class="menu">"Wprowadzenie do Javy"</a><br>
  444.          -<a href="index.php@id=210" class="menu">"Grafika w PHP"</a>
  445.         </span>
  446.         
  447.         </td>
  448.         </tr>
  449.         <tr>
  450.         <td width="142" valign="top"><img src="img/okno2.gif" border="0" width="142" height="10"></td>
  451.         </tr></table>
  452.         
  453.         <br>
  454.         <table border="0" cellpadding="0" cellspacing="0" width="142">
  455.         <tr>
  456.         <td width="142" valign="top"><img src="img/stat.gif" border="0" width="142" height="13" alt="ARTYKULY"></td>
  457.         </tr>
  458.         <tr>
  459.         <td width="142" valign="top" background="img/okno1.gif"><div align="left"><table border="0" cellpadding="0" cellspacing="0" width="138"><tr><td width="138"><ol><li><a href="index.php@id=135" class="stat">PHP - przyk│adowe skrypty</a> <span class="maleczarne">(1491)</span><br><li><a href="index.php@id=59" class="stat">Szablony 1</a> <span class="maleczarne">(833)</span><br><li><a href="index.php@id=145" class="stat">Kurs PHP</a> <span class="maleczarne">(817)</span><br><br><span class="maleczarne">ú▒cznie: 24145</span>        </ol>
  460.         <center><a href="http://stat.webmedia.pl/cgi-bin/anal?webarea" target="_blank">
  461. <img border=0 src="http://stat.webmedia.pl/cgi-bin/stat?webarea&stat4ur" alt="stat4u" width="40" height="10"></a></center>
  462.         </td></tr></table></div>
  463.         </td>
  464.         </tr>
  465.         <tr>
  466.         <td width="142" valign="top"><img src="img/okno2.gif" border="0" width="142" height="10"></td>
  467.         </tr></table>
  468.         
  469.         <br>
  470.         <table border="0" cellpadding="0" cellspacing="0" width="142">
  471.         <tr>
  472.         <td width="142" valign="top"><img src="img/sponsor.gif" border="0" width="142" height="13" alt="SPONSOR"></td>
  473.         </tr>
  474.         <tr>
  475.         <td width="142" valign="top" background="img/okno1.gif"><br>
  476.         <center><EMBED src="img/beep2.swf" quality=high bgcolor=#000000 WIDTH=120 HEIGHT=30></center>                            
  477.         </td>
  478.         </tr>
  479.         <tr>
  480.         <td width="142" valign="top"><img src="img/okno2.gif" border="0" width="142" height="10"></td>
  481.         </tr></table>
  482.  
  483.         <br>
  484.             <div align="center"><table border="0" cellpadding="2" cellspacing="0" width="120">
  485.             <tr>
  486.             <td width="120"><a href="button.php@id=1" target="_blank"><img src="img/cgi.gif" border="0"></a></td>
  487.             </tr>
  488.             <tr>
  489.             <td width="120"><a href="button.php@id=2" target="_blank"><img src="img/ygreg.gif" border="0"></a></td>
  490.             </tr>
  491.             <tr>
  492.             <td width="120"></td>
  493.             </tr>
  494.             </table>
  495.             </div>
  496.         
  497.  
  498. </td>
  499. </tr>
  500. <tr>
  501. <td width="770" valign="top" colspan="3" align="right"><br><br><span class="m">All rights reserved by <a href="mailto:web-area@web-area.org">J&J Filipowscy Design & Code</a></td>
  502. </tr></table></div>
  503.  
  504.  
  505. </body>
  506. </html>