Förberedande uppgifter
Incheckning
Checka in på kursen genom att välja Rapp
i menyn till vänster på kurshemsidan och aktivera din kursregistrering
för DD2385.
Logga först in med ditt kth-konto. Båda gruppmedlemmarna ska göra detta.
Ge även kommandot course join prutt11
i ett terminalfönster.
Kösystemet Sima för hjälp och redovisning
Kontrollera att ni kan starta SimaManager. Under Applications
och sedan CSC hittar ni SimaManager.
I fönstret som öppnas väljer ni kursen prutt.
SimaManager används för köbildning till hjälp och redovisningar.
Underkatalog för kursen
Detta bör vara självklart för alla: Skapa en egen katalog för kursen
där varje labb får en underkatalog (som vid behov själva ges underkataloger).
Kursen har funnits i flera år och kallas inom CSC för
prutt följt av årtalet, t.ex.
prutt11.
Välj gärna ett vackrare namn!
Laboration 1 - En liten knappkomponent
Innehåll
Uppgiften i labben är ganska liten men för den som är Java-nybörjare är det
många nyheter att förstå sig på. Det mesta man behöver kunna går vi igenom
på de två första föreläsningarna samt första övningen.
Följande ingår i labben:
- Skapa och köra enklaste applet-programmet.
- Skapa och köra enklaste fristående grafiska programmet.
- Använda grafikbibliotek, awt eller swing.
- Göra en egen grafisk komponent genom att bygga på
en komponent från ett grafikbibliotek.
- Göra den enklaste formen av paket.
Gör ett fristående javaprogram och en applet
Gå till katalogen för första labben.
Gör nu två mycket små Java-program. Det ena ska vara en applet (Applet eller
JApplet) och det andra ska vara ett fristående program som öppnar ett fönster
med ram (Frame eller JFrame) på datorskärmen. Se till att författarnas namn
står någonstans i fönstret.
Om du är ringrostig (eller t.o.m. nybörjare) som javaprogrammerare
påminner vi om att det till appleten måste höra en liten html-fil,
t.ex. Happ.html med html-kommandon
och att det är den man tittar på med sin webbläsare eller med
programmet appletviewer:
appletviewer Happ.html
Första gången du använder appletviewern kan den ta lite tid att starta,
men sedan blir den mycket snabbare än webbläsaren. Även om slutdestinationen
för ett applet-program är en webbsida så använder man helst
appletviewer under testfasen. En minimal html-fil kan innehålla
Här kör vi appleten Happ.class som är den kompilerade
versionen av Happ.java i ett fönster som är 300 pixlar
brett och 150 pixlar högt.
Skapa en utvidgad knappkomponent med minst två tillstånd
Skapa en klass för en ny grafisk komponent som är en utvidgad knapp,
dvs en klass som ärver från
Button eller JButton.
Knappen ska ha minst två olika tillstånd. Ett tryck på knappen ska
ändra tillståndet och det ska synas. Om knappen har just två tillstånd
ska tryck nr 2 föra tillbaka till starttillståndet.
Om ni väljer n st tillstånd så ska man efter
n tryck på knappen vara tillbaka i
starttillståndet.
De olika tillstånden kan visas t.ex. genom att färgen och/eller texten
på knappen ändras.
OBS! Det är viktigt och krävs att
knappkomponenten själv sköter om sina
tillstånd. Det duger inte att det omgivande programmet (appleten eller
fristående programmet) ändrar knappens tillstånd!
De program som skapar objekt av knappkomponenterna får inte känna till
knappkomponenternas inre!
Komponentklassen ska ha en konstruktor där man kan ange
något som påverkar objektens tillstånd. Här är exempel på hur
det kan se ut n att skapa de nya knappkomponenterna. Era konstruktorer
får se annorlunda ut, bara man kan påverka något i komponentens
starttillstånd via konstruktorn.
new MinKnapp(Color.white, Color.cyan, "På", "Av");
new MinKnapp(Color.green, Color.red, "Kör", "Stopp");
Med en konstruktor enligt ovan så antas objekt av MinKnapp ha
två tillstånd som visas genom två olika färger
och två olika texter på knapparna. Färgerna och texterna väljs
då knappobjekten skapas.
Knappar i fönstren
Lägg minst två objekt av den nya knappen
både i appleten och det fristående programmet.
Liten paket-övning
Pröva slutligen att lägga den nya knappklassen i ett eget paket, som kan vara
en underkatalog paket och skriv lämpliga package
och import överst i inblandade javafiler så att det hela
fungerar igen. Hur gör man paket? Läs här!
Rita UML-klassdiagram
över knappkomponent, applet och fristående program. Alla klasser (nya och
från bibliotek) ska vara med men det räcker att skriva klassernas namn
i rutorna. Inga detaljer om insidorna, dvs metoder och variabler, behövs.
Rita gärna diagrammet innan programmen skrivs.
Redovisning
Visa upp och förklara följande:
- Knappkomponenten enligt ovan i ett eget paket
- Minst två objekt av komponenten i en applet. Gruppmedlemmarnas namn ska
synas i appleten.
- Minst två objekt av komponenten i ett fristående fönster. Gruppmedlemmarnas namn ska synas i fönstret.
- Ett UML-klassdiagram över alla klasser som används och hur de hänger
samman. Endast klassnamn behöver stå i UML-rutorna.
Visa förstås hur knapptryckningar ändrar knappobjektens tillstånd.
När handledaren är nöjd, be om hans/hennes underskrift på ditt kvittensblad!
Kvittensbladet finns för utskrift på kurshemsidan under Laborationer.
|