Hem E-böcker Specialeffekter och spelutveckling i Java En enkel konfigurerbar knapp (Button)  

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 >>