Mobilkursen: Mobilprogrammeringsövningar vecka 1

Gör de här övningarna på labbtillfällena. Ni behöver inte visa upp resultaten eller lämna in några labbrapporter, men diskutera gärna eventuella problem eller andra frågor med läraren.

Uppgifter markerade med en asterisk (*) kan hoppas över om man får ont om tid.

Snabblänkar: MIDP | CLDC

Uppgift 1

Läs i distanskursens lektion 3 och tillägget om WTK 3.0 om hur man skapar ett projekt i WTK. Använd WTK 3.0, med inbyggd eitor. Läs också i lektion 5 om hur programkoden ska se ut.

Skapa ett projekt med den enklaste MIDlet som går att göra. Några frågor att tänka på:

Uppgift 2

Vad händer om man tar en vanlig Java-applikation för skrivbordsversionen av Java (t ex från Java-övningarna) och försöker kompilera det som en MIDlet? (Skapa ett projekt och prova!)

Uppgift 3

Gör en MIDlet som visar upp en varningsruta (Alert) med texten "Detta är en varning skapad av ditt namn".

Uppgift 4

Gör en MIDlet som visar upp en textruta (TextBox) med texten "Detta är en textruta skapad av ditt namn".

Uppgift 5

Lägg till ett Avsluta-kommando, som avslutar programmet.

Uppgift 6

Fortfarande en MIDlet som visar upp en textruta, men nu ska det finnas tre kommandon:

Uppgift 7

Skapa en MIDlet som ska kunna visa två texter: dels ditt namn, och dels en text som talar om vilken uppgift det är. Det ska gå att växla mellan texterna med kommandon. Det ska också finnas ett kommando för att avsluta programmet.

Man skulle kunna lösa uppgiften med en enda TextBox som man byter text i, men vi ska använda två olika TextBox-objekt som man kan växla mellan,

(Det här är nästan samma uppgift som inlämningsuppgift 1 i distanskursen.)

Uppgift 8 (*)

Några frågor att svara på. En del kan man behöva slå upp i manualen (MIDP och CLDC).
  1. Vad är det för skillnad på klasserna Display och Displayable?
  2. Var hittar man metoden setCurrent, och vad gör den?
  3. Vilka är de viktigaste klasserna i paketet javax.microedition.lcdui?
  4. En MIDlet har, som alla Java-klasser, en konstruktor, men också en metod som heter startApp. Kan man inte lämna startApp tom, och lägga all initieringskod, med getDisplay med mera, i konstruktorn?
  5. Kommandon har olika typer, som CANCEL och HELP. Varför? (Läs om klassen Command i MIDP.)
  6. Kommandon har olika prioriteter. Varför?
  7. MIDP innehåller gränssnittet (engelska: interface) CommandListener. Vad har man det till?
  8. Vad är klassen Screen?
  9. Vad är klassen Ticker?
  10. MIDP-program ska helst inte kräva att användaren matar in långa texter. Varför?
  11. När man skapar en TextBox anger man en maxstorlek. Vad mäts den i? Rader, tecken, pixlar, eller något annat? (Glöm inte att den sortens information ofta hittas enklast i API-dokumentationen.)
  12. Man kan ange begränsningar (engelska: constraints) på vad man kan mata in i en TextBox. Hur gör man det?
  13. Hur skulle man skapa en TextBox för inmatning av en e-postadress?
  14. Hur skulle man skapa en TextBox för inmatning av en e-postadress, som dessutom är lite hemlig och inte bör lagras i telefonens eventuella listor för automatisk ifyllning av senare inmatning?
  15. Varför kan flaggan PASSWORD vara olämplig att använda vid inmatning på en mobiltelefon?
  16. Vad är det för skillnad på en tidsbegränsad (engelska: timed) och en modal (engelska: modal) varning (engelska: alert)?
  17. Hur anger man hur länge en varning ska visas?

Uppgift 9

Läs i distanskursens lektion 6 om hur man använder listor (List) och formulär (Form).

Skapa sen en MIDlet som visar en lista (List), som från början innehåller elementen Ole, Dole och Doff. Det ska finnas tre kommandon: Bort med Ole, Bort med Dole och Bort med Doff, som tar bort respektive element ur listan. Dessutom ska det finnas ett Avsluta-kommando.

Uppgift 10

Gör om MIDleten i uppgiften ovan så den avslutas automatiskt när man tagit bort alla tre elementen ur listan.

Uppgift 11

Skapa en MIDlet som visar ett formulär (Form), där man i tre olika textfält (TextField) där man kan skriva in sitt namn, sin adress och sitt telefonnummer. Det ska finnas ett kommando som rensar alla inmatningsfälten, och ett kommando som avslutar programmet.

Uppgift 12 (*)

Skapa en komihåg-lista, enligt inlämningsuppgift 2 i distanskursen.


Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se), 11 januari 2011