Mobiltelefonapplikationer med J2ME: Inlämningsuppgift 2

Skapa en MIDlet som fungerar som en enkel komihåg-lista. Man ska kunna mata in nya saker i listan, redigera dem, och ta bort dem ur listan. I den här uppgiften finns inget krav på att sakerna ska finnas kvar om programmet avslutas, så man behöver inte spara dem på fil eller i en databas.

Bild 1: Första fönstret

När man startar programmet ska det visa ett fönster som innehåller en lista med sakerna som man ska göra, där rubriken på varje sak visas. Det ska finnas (åtminstone) fem kommandon:

Så här kan huvudfönstret se ut:

Emulatorn med ett exempel på en lösning av uppgiften

Bild 2: Lägga till en ny sak i listan

När man ger Ny-kommandot, ska man komma till ett formulär där man kan skriva in data om uppgiften. Det måste gå att ange ett namn och en prioritet, och det ska finnas plats för anteckningar.

Det ska finnas ett Spara ändringarna-kommando, som gör att det man skrivit in sparas, och det ska finnas ett Kasta bort ändringarna-kommando, som gör att det man skrivit in kastas bort.

Så här kan redigeringsformuläret se ut:

Emulatorn med ett exempel på en lösning av uppgiften

Bild 3: Ändra en uppgift

Man ändrar en uppgift genom att markera den i listan och sen ge Redigera-kommandot. Då ska man komma till redigeringsformuläret, där man kan ändra data om uppgiften. Det ska gå att ändra namnet, prioriteten och anteckningarna.

Emulatorn med ett exempel på en lösning av uppgiften

Bild 4: Redigeringsformuläret

I redigeringsformuläret kan man göra ändringar.

Emulatorn med ett exempel på en lösning av uppgiften

Bild 5: Ta bort en uppgift

När en uppgift är klar, eller om man bestämmer sig för att strunta i den, så måste man kunna radera den från listan. Man tar bort en uppgift genom att markera den i listan och sen ge Ta bort-kommandot.

Emulatorn med ett exempel på en lösning av uppgiften

Bild 6: Bekräfta eller ångra

När man gett Ta bort-kommandot ska man få möjlighet att antingen ångra sig eller att gå vidare och verkligen ta bort saken ur listan.

Emulatorn med ett exempel på en lösning av uppgiften

Bild 7: "Om"-kommandot

Det ska finnas ett "om"-kommando som get information om programmet.

Emulatorn med ett exempel på en lösning av uppgiften

Bild 9: Om programmet

"Om"-kommando ska visa en text om programmet. Ha med ditt namn här, så man ser vem som gjort programmet!

Emulatorn med ett exempel på en lösning av uppgiften

Några tips

Man behöver inte följa de här förslagen.
  1. Låt skärmen med listan över saker vara en List, redigeringsskärmen vara en Form och "om"-skärmen vara en TextBox. Ja/nej-frågan om man verkligen vill ta bort en sak ur listan kan vara en Form.
  2. Man kan spara lite jobb genom använda samma Form både för inmatning av en ny sak och för redigering av en gammal, men då blir det å andra sidan lite krångligt att veta vad programmet ska göra när användaren ger Spara-kommandot.
  3. Skapa en klass som heter Uppgift, där ett Uppgift-objekt innehåller data om en uppgift, och också kan lagras i uppgiftslistan.
  4. Skapa en klass som heter Uppgiftslista, som sköter hanteringen av uppgiftslistan, så att den delen av programmet hålls skild (så mycket det går) från koden för användargränssnittet.
  5. I Uppgiftslista kan man lagra Uppgift-objekten i en Vector. J2ME har inte klassen ArrayList, som man förmodligen skulle valt i J2SE (skrivbords-Java).
  6. Man har stor nytta av dokumentationen för MIDP och CLDC. Ladda gärna hem den och lagra den lokalt (se länkarna på kursens hemsida) om du inte har en snabb Internet-uppkoppling som är igång hela tiden.

Redovisning

Skicka filen med källkoden till MIDleten (eller filerna, om det är flera, hoppackade i en Zip-fil) med e-post till läraren.

Glöm inte att provköra programmet med olika kombinationer av indata och operationer, för att försöka hitta fel i programmet. Det kommer nämligen jag att göra, och sen skicka tillbaka uppgiften för komplettering om den inte fungerar som den ska!

Föregående lektion | Lektionslista | Nästa lektion


Thomas Padron-McCarthy (Thomas.Padron-McCarthy@tech.oru.se), 22 augusti 2006