bild
Skolan för
elektroteknik
och datavetenskap

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 <applet code = Happ.class width = 300 height = 150></applet> 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.

Copyright © Sidansvarig: Ann Bengtsson <ann@nada.kth.se>
Uppdaterad 2011-04-03