Klassen GraphicsWindow_
import se.lth.cs.pt.graphics.GraphicsWindow_;

Observera att du inte skall importera själva fönstret med hjälp av import-satsen ovan, utan istället skall välja någon av klasserna som beskrivs nedan (man kan inte skapa den typ av fönster som import-satsen ovan ger, den finns där av rent tekniska skäl).

Ett GraphicsWindow är ett fönster som användaren kan rita figurer i, exempelvis:

  GraphicsWindow w = new GraphicsWindow(500,500);
  Rectangle rect = new Rectangle(250,250,50,25);
  w.add(rect);               // lägger rektangeln i fönstret
  rect.rotate(30);           // roterar rektangeln
  rect.move(40,40);          // flyttar rektangeln
  Turtle t = new Turtle(w,400,400);
  t.left(45);                // vrider sköldpaddan
  t.penDown();               // sänker sköldpaddans penna
  t.forward(100);            // får sköldpaddan att gå framåt 
För att importera de olika figurklasserna måste man skriva:
  import se.lth.cs.pt.graphics.*; 

Dessutom måste man importera någon av GraphicsWindow-klasserna nedan.

Det finns flera olika slags GraphicsWindow-klasser i kurspaketet, det som skiljer dem åt är hur användaren kan styra vad som händer. De har alla samma operationer för att rita saker i fönstret, dessa operationer dokumenteras på denna sida -- för olika sätt att hantera användarens aktiviteter får du se dokumentationen av nedanstående klasser:

Operationerna nedan är alltså gemensamma för alla GraphicsWindow-klasser.

Metoder
void fillWith(Color color)
Fyller fönstret med en given färg.
Parametrar:
color:den färg vi vill fylla fönstret med.
void drawLine(double x0, double y0, double x1, double y1, double lineWidth, Color color)
Ritar en linje i bildens bakgrund. Linjen kan inte 'flyttas' som vanliga figurer, och ritas alltid bakom eventuella figurer i fönstret.
Parametrar:
x0:x-koordinat för linjens startpunkt
y0:y-koordinat för linjens startpunkt
x1:x-koordinat för linjens slutpunkt
y1:y-koordinat för linjens slutpunkt
lineWidth:linjens tjocklek
color:linjens färg
int getWidth()
Ger fönstrets bredd.
Returnerar fönstrets bredd (i pixels).
int getHeight()
Ger fönstrets höjd.
Returnerar fönstrets höjd (i pixels).
void add(Shape shape)
Lägger in en figur i fönstret. Om figuren tidigare ritades i något annat fönster så flyttas den därifrån automatiskt (figurerna kan bara befinna sig på ett ställe åt gången).
Parametrar:
shape:figuren som skall läggas in.
void remove(Shape shape)
Tar bort en figur från fönstret.
Parametrar:
shape:figuren som skall tas bort.
Shape shapeAt(double x, double y)
Ger den figur, om någon, som ligger 'överst' i givna koordinater.
Parametrar:
x:x-koordinat
y:y-koordinat
Returnerar den figur vi eventuellt finner, null annars.
List<Shape> getShapes()
Ger en lista med samtliga figurer i fönstret (listan går inte att ändra).
Returnerar listan med figurerna.
void hide()
Gömmer fönstret. Fönstret syns automatiskt när det skapas, du kan använda hide() för att temporärt gömma undan fönstret om det är ivägen på skärmen (använd show() för att visa fönstret igen).
void show()
Visar fönstret. Denna operation kan användas om du tidigare gömt fönstret med hide()-operationen.
void moveTo(int x, int y)
Flyttar fönstrets övre vänstra hörn till givna koordinater på skärmen (med 'fönstrets' övre vänstra hörn menas egentligen själva innehållet i fönstret, inte menyraden).
Parametrar:
x:an den nya x-koordinaten.
y:an den nya y-koordinaten.
void autoUpdate(boolean status)
Stänger av eller startar den automatiska uppdateringen av fönstret - om den automatiska uppdateringen är frånslagen syns eventuella ändringar i fönstret inte förrän operationen update anropas.

Poängen med att stänga av den automatiska uppdateringen är att fönsteroperationerna kan bli mycket snabbare om man har många objekt i fönstret.
Parametrar:
status:a boolean value
void update()
Uppdaterar fönstret (användbart om man stängt av den automatiska uppdateringen (se autoUpdate ovan).