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
  1. public TextArea()
  2. private int getLineHeightInPixels()
  3. 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 datatypen GreenfootImage.

  • Gör ett objekt av klassen GreenfootImage, och lägg objektet i variabeln image 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 parametern new Font("corrier", Font.PLAIN, fontSize)

  • Anropa metoden setImage och bifoga parametern image.

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 metoden getLineHeightInPixels returnerar.

  • currentXPosition ökas med deltaX.