| Förberedande uppgifterIncheckningChecka 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 kommandotcourse join prutt11i ett terminalfönster.Kösystemet Sima för hjälp och redovisningKontrollera 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 kursenDetta 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örpruttföljt av årtalet, t.ex.prutt11.
Välj gärna ett vackrare namn!Laboration 1 - En liten knappkomponentInnehållUppgiften 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 appletGå 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.htmlmed 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.classsom är den kompilerade 
versionen avHapp.javai ett fönster som är 300 pixlar
brett och 150 pixlar högt.Skapa en utvidgad knappkomponent med minst två tillståndSkapa en klass för en ny grafisk komponent som är en utvidgad knapp,
dvs en klass som ärver frånButtonellerJButton.  
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önstrenLägg minst två objekt av den nya knappen 
både i appleten och det fristående programmet.Liten paket-övningPröva slutligen att lägga den nya knappklassen i ett eget paket, som kan vara
en underkatalogpaketoch skriv lämpligapackageochimportö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.
 
 |