Laboration 5 med smak av pixlar och grafik

Prolog:

Bussbolaget Buss AB har köpt in en textskylten Rock n Scroll från Slas Ohlsson. Den ska sitta på bussens sida och visa reklamtexter och kundinformation när bussen står inne på busstationen. Skylten består av 256*8 ljuspunkter som kan tändas i olika färger. Janne, som varit entusiastisk inför denna förnyelse, kommer in med det avlånga paketet på kontoret. Nästan alla är samlade där för att dricka morgonkaffe. Trots den tidiga morgontimman är det uppsluppen stämning och spänd förväntan när Janne river av embalaget på paketet. Han kopplar sladden till skylten och håller upp den så att alla kan se. Se bild:

-Men texten står ju still!, säger Kurt. Skylten ska kunna visa text som scrollar från höger till vänster men trots att Janne trycker på reset-knappen upprepade gånger så står texten helt stilla. I den finstilta texten på paketet står det att mjukvaran för att åstakomma rullande text ej ingår!. Först blir det lite obehaglig stämning på bussbolagets kontor och blickarna vänds mot Janne, som har skött hela inköpsproceduren. Janne börjar svettas på överläppen och hostar fram ett:
-Så pass... Tänk, det fattade jag inte...
Då säger Janet att hon har gått en kurs i objektorienterad programmering och att hon kan fixa mjukvaran om någon annan kan köra nattbussen till Östersund t.o.r i natt. Blickarna vänds mot Janne, som inser att han är utvald för bussturen till Östersund. Janet tar den medföljande bruksanvisningen och CD-rom-skivan och går till en arbetsstation och börjar knåpa ihop mjukvaran...

Att göra:

(redovisning) Definiera en exekverbar klass med namnet MyScreen. (Dvs att den har en egen main-metod). En körning från kommandoprompten kan se ut så här:

java MyScreen -t "HOLA SOY UN PERDEDOR"

Det ska även gå att välja att ladda texten från en fil med kommandot:

java MyScreen -f mintextfil.txt

Det tredje funktionskravet är att hastigheten på scrollningen ska kunna ställas med att ange argumentet -s <paus i ms>, t.ex. så här:


java MyScreen -t "HOLA SOY UN PERDEDOR" -s 100

för att göra en 100 ms paus mellan varje scroll-förflyttning.

Denna funktionalitet tillsammans med en kommentar som beskriver till program är laborationens krav för att få godkänt.

Det finns ingen fullständig mjukvara för att styra skylten men två klasser finns tillgängliga: Data.class och Screen.class. Dessa kan vara till god hjälp i programmet. Screen är själva skylten, med metoderna toggle() för att tända och släcka skylten och setDot(int x, int y, java.awt.Color c) för att rita en punkt på din display. Klassen data innehåller typsnittsinformation för alfabetets stora bokstäver.

Här finns källkoden för nedladdning: Data.java , Screen.java

Extrafunktioner

För hugade spekulanter: