COMPUTERWORLD
Specializovan² t²denφk o v²poΦetnφ technice
o Internetu
(CW 13/97)

Zßklady programovßnφ v Jav∞

Bed°ich Smetana

V nedßvn²ch dobßch zaΦala firma Sun hovo°it o jakΘsi Jav∞, kterß, jako zatφm prakticky jedin² programovacφ jazyk na Internetu, m∞la p°inΘst zv²Üenφ jeho mo₧nostφ. Obdobn∞, jako mßlokdo Φekal tak rapidnφ nßr∙st zßjmu o Internet, tak i k Jav∞ bylo mnoho lidφ z bran₧e p∙vodn∞ skeptick²ch. Dnes se na vÜe dφvßme s odstupem, a pokud by Java pot°ebovala reklamu, nejspφÜe by zn∞la asi takto: "Dny oÜkliv²ch neinteraktivnφch strßnek jsou seΦteny".

Hezky od zaΦßtku

Podle v²zkum∙ stßle stoupß zßjem o Internet, jako prost°edek pro v²d∞lek, prßci Φi zφskßnφ informacφ, nad jeho zatφm p°eva₧ujφcφm zßbavn²m charakterem. Jak ale ud∞lat Internet u₧iteΦn²m, kdy₧ definice HTML je tak chudß a tvorba jak²chkoliv interaktivnφch dokument∙ byla zßle₧itostφ omezen²ch a slo₧it²ch CGI-skript∙? Internetu toti₧ chyb∞l nßstroj, pomocφ n∞ho₧ by se vytvß°ely aplikace, s nimi₧ by bylo mo₧nΘ pracovat na sφti, vytvo°it libovolnou prezentaci, animaci, Φi jinΘ dφlo, kterΘ by m∞lo jako v²stup obrazovku webovskΘho prohlφ₧eΦe -- plnohodnotn² programovacφ jazyk vyÜÜφ ·rovn∞ (jako nap°. Pascal, C++, atp.) vyvinut² specißln∞ pro Internet. Dnes ji₧ takov² nßstroj mßme -- jmenuje se Java.

Java je jazyk nov², nezatφ₧en² kompatibilitou a konstrukcemi z minul²ch verzφ. Je uzp∙soben jen a jen k tomu, k Φemu se bude pou₧φvat a disponuje vÜemi pot°ebn²mi funkcemi pro prßci se sφtφ a grafikou. Jeho dalÜφ v²hoda spoΦφvß v k≤du, kter² pou₧φvß jakΘsi virtußlnφ prost°edky, je tedy platformn∞ zcela nezßvisl² a aplikace napsanΘ v Jav∞ budou stejn∞ dob°e chodit pod OS/2, Windows, MacOS, nebo UNIXem. VÜechny jeho po₧adavky mu toti₧ dßvß emulßtor prost°ednictvφm systΘmu nebo webovskΘho prohlφ₧eΦe. Dφky Φemu₧ jsou takΘ i slo₧itΘ aplikace velmi malΘ, nebo¥ vÜechny p∙vodnφ rutiny pro prßci se vÜemi prost°edky mßte na vlastnφm poΦφtaΦi.

Java je jednoduchß na pochopenφ, k≤d je Φist∞ objektov² a multithreadnφ.

O Φem programovßnφ v Jav∞ vlastn∞ je

Tento Φlßnek vßs nauΦφ programovat v Jav∞ jednoduchΘ aplikace v podob∞ skßkajφcφho textu na obrazovce. ╚asem se dostanete i k aplikacφm slo₧it∞jÜφm, jako jsou r∙znΘ hry, programy pro prßci s dokumenty a sφ¥ov²mi slu₧bami. Budete tedy moci o₧ivit vaÜe strßnky zajφmav²mi aplety, nebo t°eba na Jav∞ vybudovat kompletnφ nabφdku s cenφkem pro vaÜe obchodnφ partnery.

Co budete pot°ebovat

Zßklady rogramovßnφ v Jav∞ se nauΦφte prost°ednictvφm Java Developers Kit (JDK), kter² vytvo°ila softwarovß divize firmy Sun. Tento nßstroj je k dispozici pro v∞tÜinu 32bitov²ch operaΦnφch systΘm∙ s podporou dlouh²ch jmen soubor∙ (nap°φklad na adrese http://www.javasoft.com). Zφskßte jej ale takΘ jako nedφlnou souΦßst Internetem prolezlΘho operaΦnφho systΘmu OS/2 4.0 Warp.

Ukßzky, uvßd∞nΘ v tomto Φlßnku, budou z ji₧ zmφn∞nΘ ╙esdvojky, nebo¥ jejφ podpora Javy, vestav∞nß do 32bitovΘho jßdra, je velmi rychlß a je zde k dispozici mnoho pomocn²ch aplikacφ. VÜechny uvedenΘ informace se vÜak budou t²kat vÜech prost°edφ bez rozdφlu, jen tam, kde nßzvy obslu₧n²ch program∙ mohou b²t jinΘ, vßs upozornφme. Pokud tedy nemßte OS/2, staΦφ vßm si zvolit vhodn² textov² editor, kter² nezanechßvß v dokumentu formßtovacφ informace (nap°φklad pln∞ postaΦujφcφ je Poznßmkov² blok -- Notepad) a k ruce si p°ipravte p°φkazovou °ßdku nebo okno se zkratkami na vyvolßnφ kompilace. Potom pot°ebujete ji₧ jen prohlφ₧eΦ Java-applet∙. Tφm m∙₧e b²t nap°φklad Netscape Navigator.

Sm∞le vp°ed

Programy (applety) Javy budete psßt jako b∞₧n² textov² soubor s p°φponou "java" (nap°φklad: "mujpriklad.java"). PotΘ jej musφte p°ekompilovat do podoby srozumitelnΘ systΘmu. Tento binßrnφ k≤d mß p°φponu class (mujpriklad.class). Kompilaci spustφte p°φkazem "javac mujpriklad.java".

Abyste si mohli v²sledek vaÜφ prßce prohlΘdnout, musφte vytvo°it odkaz na vßÜ dokument ve webovskΘm dokumentu. Vytvo°te tedy (op∞t m∙₧ete nap°φklad v Notepadu) soubor "mujpriklad.html" a do n∞j napiÜte nßsledujφcφ °ßdky:

<HTML>
<HEAD>
<title>M∙j p°φklad v Jav∞</title>
</HEAD>
<BODY>
<APPLET CODE="mujpriklad.class" WIDTH="320" HEIGHT="120" ALIGN="center">
<PARAM NAME="rows" VALUE="4">
Bohu₧el nemßte <b>Java kompatibilnφ</b> prohlφ₧eΦ, nevφte o co p°ichßzφte.
</applet>
</BODY>
</HTML>

Na prvnφ pohled je to slo₧itΘ, ale vysv∞tlφme si to podrobn∞ji (zßklady HTML se zde zab²vat nebudeme, nebo¥ je mo₧nΘ se o nich doΦφt jidne, nap°. i zde v Computerworldu). Applety se na strßnku umφs¥ujφ pßrov²m p°φkazem "Applet", kter² mß nßsledujφcφ definici:

<APPLET CODEBASE="URL aplikace" CODE="jmΘno.class" ALT="alternativnφ text" NAME="symb. jmΘnoapletu" WIDTH="Üφ°ka" HEIGHT="v²Üka" ALIGN="zarovnßnφ" VSPACE="svislß mezera" HSPACE="vod. mezera">

</APPLET>

PovinnΘ jsou pouze parametry CODE, WIDTH a HEIGHT, p°iΦem₧ poslednφ dva jsou zde jen proto, aby prohlφ₧eΦ p°ed zaΦßtkem stahovßnφ v∞d∞l, jak² prostor mß vyhradit. V samotnΘ aplikaci je mo₧nΘ velikost vyhrazenΘho prostoru zm∞nit.

P°ed ukonΦovacφ p°φkaz </APPLET> m∙₧ete jeÜt∞ zapsat parametry, kterΘ p°edßvßte vaÜφ aplikaci z webovskΘho dokumentu. Parametr∙ m∙₧e b²t libovoln∞ mnoho a majφ nßsledujφcφ definici:

<PARAM NAME="nßzev_parametru" VALUE="hodnota">

Tedy pokud chcete nap°φklad p°edat aplikaci text, kter² mß skßkat na strßnce, m∙₧e parametr vypadat takto:

<PARAM NAME="text" VALUE="Muj text">

Jak²koliv dalÜφ zdrojov² HTML text, umφst∞n² p°ed ukonΦovacφ p°φkaz, bude zobrazen pouze prohlφ₧eΦi, kterΘ nepodporujφ Javu, m∙₧ete jej tedy s v²hodou pou₧φt pro upozorn∞nφ, ₧e prohlφ₧eΦ vy₧aduje Javu:

Bohu₧el nemßte <b>Java kompatibilnφ</b> prohlφ₧eΦ, nevφte o co p°ichßzφte.

Na zßv∞r naÜeho sezenφ

-- Dφky knihovnßm nemusφte um∞t programovat, abyste vytvo°ili b∞₧φcφ text Φi animaci, m∙₧ete snadno pou₧φt jinΘ aplikace a dokonce je i rozlo₧it do zdrojovΘho textu.

-- Na ka₧d² projekt si vytvo°te samostatn² adresß° a peΦliv∞ si dokumentujte vÜechny funkce.

-- Java je objektovß, sna₧te se tedy vytvß°et co nejobecn∞jÜφ objekty, od kter²ch nßsledn∞ budete odvozovat. Ty umφstφte do knihoven, a¥ je m∙₧ete vyu₧φt vφcekrßt.

-- Nevytvß°ejte zbyteΦnΘ funkce do samotnΘho souboru, pro testovßnφ pou₧ijte jednu testovacφ aplikaci -- nezapome≥te, ₧e applety se stahujφ obvykle po modemu.

-- Archivujte si nejen r∙znΘ verze zdrojovΘho textu, ale takΘ p°elo₧enou t°φdu. Dßvejte si pozor na psanφ nßzv∙ metod a prom∞n²ch ve zdrojovΘm textu. P°ekladaΦ rozliÜuje malß a velkß pφsmena a pokud tedy napφÜete fillrect namφsto fillRect, vyÜle chybovou hlßÜku. M∙₧e vßm to sice zpoΦßtku d∞lat menÜφ problΘmy, ale v∞zte, ₧e jste-li k tomu donuceni, bude vßÜ text od zaΦßtku vypadat lΘpe.

-- VÜe si d∙kladn∞ zkouÜejte, jen tak se tento jazyk m∙₧ete rychle nauΦit -- je toti₧ slo₧it² na zvlßdnutφ vÜech funkcφ.

Ve vlo₧enΘm textu mßte v²pis prvnφ jednoduchΘ aplikace napsanΘ v Jav∞, kterß napφÜe do v²stupu nßpis "Budi₧ pozdraven Computerworld". Na aplikaci si vyzkouÜejte propojenφ s vaÜφ HTML strßnkou a takΘ prßci s kompilßtorem.

HTML strßnka pro aplet
<HTML>
<HEAD>
<title>M∙j p°φklad v Jav∞</title>
</HEAD>
<BODY>
<APPLET CODE="mujpriklad.class" WIDTH="320" HEIGHT="120" ALIGN="center">
<PARAM NAME="rows" VALUE="4">
Bohu₧el nemßte <b>Java kompatibilnφ</b> prohlφ₧eΦ, nevφte o co p°ichßzφte.
</applet>
</BODY>
</HTML>

V²pis zdrojovΘho textu mujpriklad.java
import java.applet.*;
import java.awt.*;
public class mujpriklad extends java.applet.Applet
{ public void paint(Graphics Grafika)
{
Grafika.drawString("Budi₧ pozdraven Computerworld", 10, 10);
}
}


| <<< | CW o Internetu | COMPUTERWORLD | IDG CZ homepage |