Specialeffekter och spelutveckling
i Java(TM) - En enkel konfigurerbar knapp (Button)
av Anibal Wainstein
6.1.2 En enkel konfigurerbar
knapp (Button)
Applet-knappar
är väldigt vanligt ute på Internet. Vi kommer
nu att göra om exemplet som vi programmerade i avsnitt
5.0.1 så
att den stödjer en länk. Vi måste börja
med att göra inladdningen av bilderna konfigurerbar.
Du behöver dock inte deklarera nya globala variabler.
Kopiera och döp om filen "mouseovertest.java"
till "button.java" och gör om init() i metoden
så att den ser ut så här istället:
public void init()
{
MediaTracker tracker=new MediaTracker(this);
//Observera att vi nu har
//getParameter("normalimage")
//och getParameter("mouseoverimage")
normalimage=getImage(getDocumentBase(),getParameter("normalimage"));
tracker.addImage(normalimage,0);
mouseoverimage=getImage(getDocumentBase(),getParameter("mouseoverimage"));
tracker.addImage(mouseoverimage,1);
currentimage=normalimage;
try {tracker.waitForAll();}
catch(InterruptedException e)
{
System.out.println("Någonting stoppade inladdningen...");
}
}
Glöm
inte också att lägga till "import java.net.*;"
längst upp i appleten. Som du ser, så är den
enda ändringen att vi har bytt ut filnamnen "normal.jpg"
och "mouseover.jpg" mot getParameter("normalimage")
resp. getParameter("mouseoverimage"). Metoderna
paint(), mouseEnter() och mouseExit() behöver inte ändras.
Däremot skall vi lägga till ännu en metod:
public boolean mouseDown(Event e, int x, int y)
{
String url=getParameter("url");
String target=getParameter("target");
gotoURL(url,target);
return true;
}
Du
kom väl ihåg att klistra in gotoURL() metoden som
vi skapade i den förra avsnittet? Metoden mouseDown()
kommer att aktiveras när hemsidebesökaren klickar
på appletområdet. När den anropas så
läses en adress och målramen som web designern
har specifierat. Efter det så anropas gotoURL() och
appleten byter sida. Parametrarna för appleten ser ut
så här:
<APPLET CODE="button.class" WIDTH=134 HEIGHT=30> <PARAM name="normalimage" value="javahus0.jpg"> <PARAM name="mouseoverimage" value="javahus1.jpg"> <PARAM name="url" value="http://www2.passagen.se/javahuset/"> <PARAM name="target" value=""> </APPLET>
Vi
har lämnat parametern "target" tomt, för
då kommer gotoURL() metoden att använda showDocument()
med bara URL argumentet. Appleten kommer alltså att
öppna sidan på samma web tittar sida som den finns
på. Samma sak kommer att hända om vi utelämnar
parametern helt. För då blir resultatet av getParameter("target")
lika med null. Anta nu att användaren skriver en tokig
adress, då kommer appleten att svara med "FELSKRIVEN
ADRESS!" på statusfönstret, eftersom try-slingan
kommer att producera en MalformedURLException. Klicka
här för att titta på appleten.
Nästa sida >>
|