bild
Skolan för
datorvetenskap
och kommunication

Labb 1 »
Labb 2 »
Labb 3 »
Labb 4 »
Labb 6 »

KTH / CSC / DD1346

Labb 5, Webbläsare

Målet med denna labb är att träna på att själv utforma strukturen för sitt program, och leta rätt på den information man behöver i Java-dokumentationen. Den ger också vidare träning i texthantering och GUI.

Del E

För godkänt till betyg E på denna labb krävs att alla delar av uppgiften i denna del skall vara utförda. För att få godkänt krävs dessutom att ni har en genomtänkt struktur och uppdelning i olika klasser med olika funktion, samt att båda i labbgruppen kan förklara resonemanget bakom lösningarna och hur koden fungerar, både den övergripande strukturen och de enskilda metodanropen. Koden ska vara lätt att följa och väl kommenterad, och använda begripliga variabel- och metodnamn i enlighet med vanlig namnkonvention. Koden ska dokumenteras med Javadoc.

I denna labb ska ni göra en egen webläsare. För att det ska vara rimligt att hinna färdigt inom ramarna för denna kurs begränsar vi funktionaliteten till det mest basala, och tillåter att ni använder er av färdiga Java-bibliotek.
Uppgift E1 Skriv ett fristående program som skapar en grafisk webläsare. Er webbläsare måste uppfylla följande specifikationer:

  1. Det ska finnas en adressruta (Text field) där man kan ange en webbadress.
  2. Det ska finnas ett visningsfönster (Editor Panes) där en hemsida specifierad i addressinmatningsrutan visas. Det räcker med att kunna visa vanlig HTML, ni behöver inte ha stöd för t.ex Flash eller JavaScript. Fönstret ska ha rull-lister, så att man kan rulla ("scrolla") om inte hela sidan ryms i fönstret.
  3. Om man klickar på en länk i hemsidan som visas, så ska den nya sidan som länken leder till visas (JEditorPane).
  4. Det ska finnas en avstängningsknapp som avslutar programmet.

Länkarna ovan leder till tips om hur man relativt enkelt kan lösa vissa delproblem. Om ni inte vill behöver ni inte använda er av dessa tips, men ni får inte göra avkall på funktionaliteten.

Del C

För godkänt till betyg C på denna lab krävs - utöver godkänd E-del - att samtliga specifikationer i uppgiften i denna del skall vara uppfyllda samt att båda i labbgruppen kan förklara hur koden fungerar, och varför ni löste problemen som ni gjorde.
Uppgift C1 Utöka er webbläsare med följande specifikationer:

  1. Det ska finnas en "tillbaka"-knapp, som gör att man kan gå tillbaka till föregående sida.
  2. Det ska finnas en "framåt"-knapp, som gör att man kan gå fram igen efter att man backat tillbaka enligt ovan.
  3. Det ska synas på knapparna ovan huruvida det går att trycka på dem. (Det ska bara gå att trycka på dem när det finns en sida att gå tillbaka/fram till)
  4. Det ska finnas en historieknapp, som om man trycker på den visar en lista på alla adresser som man har besökt, där listan ska vara klickbar så att man lätt kan ta sig till en tidigare besökt sida.
  5. Om en länk är felaktig, eller om man inte får kontakt med nätverket så ska det komma upp en fel-ruta som informerar om detta, och som har en "OK"-knapp som man kan stänga rutan med.

Tips:

När man skriver ett lite större program kan det vara bra att börja med att skapa strukturen, för att sedan fylla på med innehåll och funktioner. I detta fall kan en bra arbetsordning vara att börja med att skapa det grafiska gränsnittet, och sedan fortsätta med att lägga till funktioner. Ge gärna de olika delarna dummy-funktioner, som t.ex att de skriver ut text om att de har anropats. T.ex kan ett tryck på historieknappen ge texten "Nu har någon tryckt på historieknappen!", så att man kan se att själva lyssnaren fungerar innan man programmerar funktionen som visar upp historien på skärmen. När allting fungerar kan man plocka bort dessa utskrifter ur koden.

Sidansvarig: Christian Smith <ccs@kth.se>
Uppdaterad 2012-10-18