0199 TextArea
Följande klass är ett alternativ till
System.out.println();
Klassen TextArea är en Actor
Utskrift sker till objektets bakgrundsbild. I exemplet nedan täcker bakgrundsbilden hela bakgrunden i World
.
Klassdiagram visas nedan.
TextArea
- private int currentYPosition
- private int currentXPosition
- private int deltaX
- private int fontSize
- public TextArea()
- private int getLineHeightInPixels()
- public printLine(String text)
Objektvariabler
currentYPosition
Är y-positionen där utskrift ska ske.
currentXPosition
Är x-positionen där utskrift ska ske.
deltaX
Är bredden på en textkolumn.
fontSize
Anger fontstorlek i pixlar.
Konstruktor
Konstruktorn tar inga parametrar.
Initiering av objektvariabler
//pseudokod nedan
currentYPosition --> getLineHeightInPixels ger svaret
currentXPosition --> 10
deltaX --> 150
fontSize --> 10
bakgrundsbild
Gör en lokal variabel
image
av datatypenGreenfootImage
.Gör ett objekt av klassen
GreenfootImage
, och lägg objektet i variabelnimage
ovan.Låt det vara t.ex. 400 x 300 pixlar.
Sätt färgen till vit.
Color.WHITE
Fyll hela bilden med vit färg genom att anropa metoden
fill
.Sätt bakgrundsfärgen till svart, så att texten blir svart.
Color.BLACK
Anropa metoden
setFont
med parameternnew Font("corrier", Font.PLAIN, fontSize)
Anropa metoden
setImage
och bifoga parameternimage
.
Metoden getLineHeightInPixels
Metoden returnerar radhöjden i pixlar. Beräkning sker på följande vis.
fontstorlek * 140 / 100
Metoden printLine
Metoden tar en parameter text
som är den text som ska skrivas ut.
Bakgrundsbilden kan hämtas med metoden getImage
.
Rita texten med hjälp av metoden drawString
i klassen GreenfootImage
.
Öka currentYPosition
med det som metoden getLineHeightInPixels
returnerar.
För att få utskrift i nästa kolumn när den första är full görs följande, om currentPosition
är störren än bakgrundsbildens höjd.
currentYPosition
sätts till det metodengetLineHeightInPixels
returnerar.currentXPosition
ökas meddeltaX
.