CSC

 

Laboration 1 - En liten knappkomponent

Incheckning

Det första du ska göra är kursregistrering i res-systemet. Logga in på CSC:s datorer och ge kommandot res checkin prutt10. Gör även course join prutt10. Det kommer att förbättra din miljö lite grann och göra att kursledaren kan ge dig inloggningsmeddelanden som rör kursen. Båda gruppmedlemmarna måste ge kommandona från det egna kontot. res checkin och course join görs bara en enda gång per kurs.

Frivilligt - gemensam katalog för kursen

Det kan vara praktiskt att ha en katalog som båda gruppmedlemmarna kan komma åt. Det finns ett kommando för detta: course labdir prutt10 labbkompis-användarnamn skapar katalogen prutt10 under hemkatalogen för den som ger kommandot. Labbkompisen får tillgång till katalogen men måste också logga in och skriva kommandot course labdir prutt10 kajsakavat där kajsakavat byts mot den första gruppmedlemmens inloggningsnamn.

De som förstår sig på filsystemet och kan skapa underkataloger och symboliska länkar och kan sätta åtkomsträttigheter på sina kataloger och filer kan själva åstadkomma en filkatalog tillgänglig inom gruppen utan specialkommandot course labdir. I CSC:s Unix-häfte kan man läsa det som behövs om symboliska länkar och annat nyttigt. Häftet finns även att köpa på studentexpeditionen, Osquars backe 2.

Kösystemet Sima för hjälp och redovisning

När man gett kommandot course join prutt10, loggat ut och loggat in igen, har man tillgång till Sima genom att bara skriva sm i ett terminalfönster. Annars kan man skriva module add sima och därefter sm. Sima dyker upp som ett eget fönster med en rad kursförkortningar. Välj prutt och tryck på Login- knappen! När du vill redovisa eller ha hjälp, tryck på Queue- knappen.

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 kan få underkataloger). Kursen har funnits i flera år och kallas inom CSC för prutt följt av årtalet, t.ex. prutt10. Ni får förstås gärna använda ett annat vackrare namn!

Gör ett fristående javaprogram och en applet

Skapa en underkatalog till kursens katalog. Kalla den t.ex. för lab1. 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 fil som exemplelvis kan heta Happ.html med html-kommandon i 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 tar den 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 gärna 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 olika tillstånd

Skapa nu 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. Minst två saker ska ändras. Man kan välja t.ex. färg på knappen, text på knappen eller textstorlek. Om ni väljer n st tillstånd så ska man efter n tryck på knappen vara tillbaka i starttillståndet. OBS! Det är viktigt och krävs att knappkomponenten själv sköter om sina tillstånd. Det duger inte att det omgivande programmet (applet eller fristående program) ändrar knappens tillstånd! Det är trevligt men krävs inte att man kan välja vilka tillstånd knappen ska ha genom parametrar till konstruktorn när knappen skapas. T.ex.

new MinKnapp(Color.white, Color.cyan, "På", "Av");
new MinKnapp(Color.green, Color.red, "Kör", "Stopp");
Objekt av MinKnapp har 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 ett par 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.

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 behövs. Ni får förstås gärna rita diagrammet innan programmen skrivs.

Redovisning

Vid redovisning så skall följande visas upp och förklaras
  • 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.
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.

Sidansvarig: <ann@nada.kth.se>
Senast ändrad 17 mars 2010
Tekniskt stöd: <webmaster@nada.kth.se>