Lage appletter
En applett (engelsk: applet) er et program som kjører som del av en nettside. Ikke overraskende er det litt mer komplisert å få utført Java-program på denne måten, og du bør være forberedt på litt prøving og feiling. Det kan f.eks. være lurt å prøve et par forskjellige nettlesere.
Endringer i eget program
For å kjøre et EasyGraphics-program som applett må du utvide EGApplet i stedet for EasyGraphics. Du skriver altså:
public class MittProgram extends EGApplet { ... }
I stedet for:
public class MittProgram extends EasyGraphics { ... }
Resten av kildekoden kan være som den er.
Kompilere og lage jar-fil
Start med å lagre eget program MittProgram og egapplet.jar på en ny katalog. Kompiler med opsjonen -classpath, og eventuelt -encoding:
javac -encoding utf8 -classpath .;egapplet.jar MittProgram.java
Neste steg er å pakke MittProgram.class sammen med klassefilene i egapplet.jar. En enkel, om enn ikke veldig elegant, variant: Pakk ut egapplet.jar, legg alle klassefilene og MittProgram.class inn i en ny jar-fil mittprogram.jar, og slett til slutt klassefilene.
jar xvf egapplet.jar jar cvf mittprogram.jar *.class del *.class
I tillegg til jar-filen får vi også en underkatalog META-INF.
Publisere
Ved å følge oppskriften over har vi pakket EasyGraphics-biblioteket sammen med en kompilert versjon av vårt eget program MittProgram.java i en jar-fil mittprogram.jar. For å få den kjørt i en nettleser trenger vi en HTML-fil og en såkalt JNLP-fil (Java Network Launch Protocol). Eksempelfiler for MittProgram:
- MittProgram (html)
- mittprogram (jnlp)
HTML-filen refererer til JNLP-filen, som igjen refererer til JAR-filen med den kompilerte Java-koden. Appletten blir sparket i gang ved hjelp av JavaScript-biblioteket dtjava.js, som bla. sjekker at brukeren har en nettleser med riktig Java-versjon.
For å tilpasse dette til en nytt program er det bare å endre alle forekomster av MittProgram (og mittprogram) i disse to filene.Man kan kjøre programmet ved å åpne HTML-filen i en nettleser. Har man en web-tjener kan hele katalogen, med HTML-fil, JNLP-fil, JAR-fil og underkatalog META-INF, kopieres ut i web-katalogen til web-tjeneren.
Størrelsen på applett-vinduet
EasyGraphics er basert på at man oppretter en tegneflate med gitt bredde og høyde ved kall på makeWindow. Dette skaper en utfordring for applett-versjonen av EasyGraphics. Swing-versjonen av EasyGraphics låser bare størrelsen på vinduet, men i nettleseren vil størrelsen på appletten endre seg hvis brukeren zoomer.
Vi har i første omgang valgt en løsning der størrelsen på selve tegneflaten som vanlig er gitt ved parametre til kallet på makeWindow, og den endres ikke ved zooming. Plassen som appletten "disponerer" på nettsiden vil imidlertid endre seg ved zooming, og startstørrelsen angis i styrefilene (HTML og JNLP). Applett-versjonen av EasyGraphics viser størrelsen på hele appletten som en grå ramme.