Mobiltelefonapplikationer med Java ME: Hemtentamen 2008-05-31

Det här är hemtentan som går lördag 31 maj 2008 i kursen Mobiltelefonapplikationer med Java ME. Ansvarig lärare är Thomas Padron-McCarthy (Thomas.Padron-McCarthy@tech.oru.se), telefon 070-73 47 013.

Instruktioner

  1. Skriv och provkör programmet som beskrivs i uppgiften, och skicka sen in det färdiga programmet till mig (Thomas.Padron-McCarthy@tech.oru.se) senast klockan 08:00 söndag 1 juni 2008.
  2. Uppgiften ska lösas enskilt, dvs inga grupper av två eller flera studenter.
  3. Du får använda dator, böcker och vilka andra hjälpmedel som helst, men du får inte samarbeta eller fråga någon (utom mig).
  4. Ibland kan det ta lång tid för e-post att komma fram, så om du har brådskande frågor om tentan kan det vara säkrast att ringa till mobilnumret ovan.
  5. Packa ihop hela katalogen med applikationen i en Zip-fil, och skicka den som en bilaga. Men döp först om Zip-filen från nånting.zip till exempelvis nånting.info för att överlista överambitiösa virusfilter. Om applikationen bara består av en enda Java-fil kan man i stället skicka bara den filen.
  6. Om du inte senast på söndagen fått e-post från mig med en bekräftelse på att du skickat in uppgiften, bör du kontakta mig, enklast genom att ringa eller SMS:a mig (ifall det är e-posten som inte fungerar).
  7. Godkänt resultat på den här hemtentan ger betyget G på teoridelen av kursen. Tillsammans med godkända inlämningsuppgifter ger detta betyget G på hela kursen. Om man vill ha betyget VG ska man dessutom själv hitta på och göra en mindre projektuppgift.

Bakgrund

I lektionerna i år har vi inte tagit upp hur man använder klassen Canvas för att rita upp helt egna skärmbilder. Det är dock inte så svårt:
  1. Gör en egen klass, som ärver från klassen Canvas
  2. Den ska implementera metoden paint, som sköter själva ritandet
  3. I paint kan man anropa olika ritmetoder, som drawLine, drawRect och fillTriangle.
  4. En Canvas är en sorts Displayable (liksom Form, TextBox, List och Alert), och kan användas i en MIDlet på liknande sätt:
Det som kan vara krångligt är förstås paint, och kanske inte så mycket själva ritandet, utan mer att hålla reda på all information som behövs för att rita upp bilden.

Det finns en ny lektion om Canvas-klassen, som mer än väl täcker in vad som behövs för den här tentan: lektion 10.

Uppgiften

Programmet ska visa en bild som innehåller en cirkel, en triangel och en rektangel:

En bild med tre objekt

För att underlätta för den som inte är van vid Canvas-klassen, finns här en Canvas som ritar upp detta (men inte exakt samma proportioner som på bilden): TreObjekt.java

Det ska finnas kommandon för att ändra placering och storlek på de tre objekten:

Kommandon för att ändra på bilden

Med kommandot "Redigera cirkeln" kommer vi till ett formulär, där vi kan ändra cirkelns position och storlek. Här är ett förslag på hur det kan göras med tre Gauge-objekt, men man kan också tänka sig helt andra lösningar:

Formuläret för att ändra cirkeln

Vi flyttar cirkeln i x-led:

Formuläret för att ändra cirkeln

Kommandot "Tillbaka" tar oss tillbaka till bilden, och mycket riktigt har cirkeln flyttat sig i x-led:

Nu har vi flyttat på cirkeln

På motsvarande sätt ska triangeln och kvadraten kunna ändras.

Det ska också finnas ett kommando som visar en ruta som talar om vem som skrivit programmet:

Om-kommandot     Om-rutan

Krav på programmet:

  1. Både position och storlek ska kunna ändras på alla tre objekten.
  2. Det ska gå att göra "stora" ändringar, dvs över (åtminstone nästan) hela skärmen och inte bara några få pixlar.
  3. Programmet får inte krascha.
  4. Programmet behöver inte kunna spara, så att positionerna finns kvar om programmet startas om.


Thomas Padron-McCarthy (Thomas.Padron-McCarthy@tech.oru.se), 29 maj 2008