Applets en Java

Bij dit vak leren jullie een applet te maken in Java. Van Java hoeven jullie niet veel te weten. Java lijkt niet op Javascript. Van Javascript en HTML weten jullie wel alles. Hier gaan we kort in op de strikt gescheiden fenomenen 'java-source' versus 'HTML-source'. De ene maak je in een java-programmeer-omgeving; de ander in een HTML-programmeer-omgeving. Eerst iets over java, vervolgens een zeer eenvoudig voorbeeld.

Java

Het aanroepen van een runable object ('applet')

In HTML kun je voorgeprogrammeerde objecten (uit een library) aanroepen. Dat doe je door in de HTML-source de applet-tag op de juiste manier op te nemen en aan te roepen. De source van het java-programma blijft achter in de 'kluis' van de programmeur. De 'gecompileerde' source-code komt in een class-file te staan. De class-file wordt verder gebruikt. Niemand kan de oorspronkelijke source-code meer lezen. De class-file bevat niet meer voor een mens te begrijpen code. Dat in tegenstelling met javascript en HTML-code. Dat kan iedere gebruiker achterhalen en zelfs hergebruiken voor eigen doeleinden.

In onderstaand voorbeeld wordt eerst voor de volledigheid de source van de Java-applet getoond. Daarna de source van de HTML-pagina. Daar kunt u zien hoe de applet is ingebed en wordt aangeroepen. De source van de applet is niet van belang. Die blijft bij de ontwerper op zijn computer staan. De gecompileerde file - zoals die door de compiler wordt aangemaakt - is eigenlijk de applet. De client laadt bij het runnen van de HTML-pagina die file en executeert hem; en presenteert de inhoud. De afmeting van de applet heeft de HTML-programmeur wel in de hand maar de inhoud niet. Hier zie je de waterscheiding tussen de 'java-programmeur' en de 'HTML-programmeur'. Die file is van het type 'class'. De class-file bevat geen informatie waaruit iemand kan afleiden hoe hij is opgebouwd. Dat is het voordeel van java-applets. De ontwerper raakt zijn eigendommen niet kwijt. Voor de gebruiker is dat wellicht nadelig maar voor een ontwerper meestal niet. Het is gewoon een kwestie van copyrights.

Een voorbeeld van een java-listing met twee methods:

Dit is dus de source-code van een verder in principe willekeurige applet. De applet bestaat uit twee methods (hier 'init' en 'paint') en heeft (hier) de naam 'Voorbeeld10'. Het for-loopje geeft een indicatie dat er iets dynamisch op het beeldscherm zal gebeuren. De methods zijn grotendeels en demonstratief leeg gelaten. (Zie verder op op onze site.)

Hieronder zie je een voorbeeld van een listing van de bijbehorende HTML-file. Deze HTML-file kan de user altijd (met 'view-source' van de browser) te weten komen; let daar op als ontwerper. De inhoud van de bovenstaande class-file daar en tegen niet. Programmeren met Java heeft dus als voordeel dat je je geheimen voor de user voor je kunt houden, dwz op je eigen PC achter kunt houden.

<HTML>
<BODY>
<TITLE>Een applet in een HTML-file</TITLE>

<P>
Hier zie je een applet in een lopende tekst. 
<P>
Dit is een eenvoudige applet

<APPLET 
    code=Voorbeeld10.class 
    width=300 
    height=120>
</APPLET>


Je ziet het.
<P>
De applet gedraagt zich als een<BR>
plaatje. Met een bepaalde hoogte<BR>
en een bepaalde breedte. Een<BR>
soort dynamisch plaatje.<BR>

.....enz..... </HTML> </BODY>

Het compileren van het programma uit de in java geschreven source-file wordt bij het compileren omgezet tot een class-file. Hier "Voorbeeld10.class". Deze class-file kun je net zo hanteren als je JPEG-files hanteert. Je kunt een class-file in elke directory zetten die je maar wilt; maar het beste is in de directory waar ook de HTML-file staat. Feitelijk is een class-file niets anders dan een 'geprogrammeerd dynamisch plaatje', dat net zo in een HTML-file wordt gezet, en werkt, als een (statisch) JPEG-plaatje of een (dynamisch) animated gifje. De breedte van deze applet is ingesteld op 300 pixels; de hoogte op 120 pixels.

Bij het javaTHESIS systeem kun je deze twee files soorten files ook precies zo onderscheiden: één HTML-file waar je de applet in aanroept en je de bijbehorende teksten zet; en één source-code-file met een 'voorgeprogrammerd' programma. De ene dient geintepreteerd te worden (door de browser) de ander gecompileerd (door de JDK compiler).

Enschede, 15 febr. 2000.