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:
-
ett kommando för att lägga till nya saker,
-
ett kommando för att redigera en existerande sak,
-
ett kommando för att ta bort en sak ur listan,
-
ett kommando för att avsluta programmet,
-
och ett "om"-kommando med information om programmet.
Så här kan huvudfönstret se ut:
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:
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.
Bild 4: Redigeringsformuläret
I redigeringsformuläret kan man göra ändringar.
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.
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.
Bild 7: "Om"-kommandot
Det ska finnas ett "om"-kommando som get information om programmet.
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!
Några tips
Man behöver inte följa de här förslagen.
-
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.
-
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.
-
Skapa en klass som heter Uppgift,
där ett Uppgift-objekt innehåller data om en uppgift,
och också kan lagras i uppgiftslistan.
-
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.
-
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).
-
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!
Om samarbete:
Varje student ska göra en egen lösning, och skicka in den,
men det är inte förbjudet att samarbeta eller fråga andra studenter om hjälp.
Däremot ska man i så fall tydligt ange vilka som man samarbetat med.
|
Skriv gärna i ärenderaden på brevet vilken kurs det handlar om,
till exempel "J2ME-uppgift 2", och inte bara "Uppgift 2".
|
Föregående lektion |
Lektionslista |
Nästa lektion
Thomas Padron-McCarthy
(Thomas.Padron-McCarthy@tech.oru.se),
22 oktober 2007