Klassen GraphicsWindow
import se.lth.cs.pt.graphics.events.GraphicsWindow;

Detta är ett slags GraphicsWindow som utöver de vanliga GraphicsWindow-operationerna även låter oss registrera vilka händelser vi vill att vårt program skall ta hand om. Exempel på användning (se även klassen GameEvent):

   GraphicsWindow w = ...;
   ...
   w.checkKeys(true,false,false);
   w.checkMouse(true,false,false,false,false);
   w.timeStep(100);
   for (;;) {
       GameEvent event = w.getNextEvent();
       switch (event.getKind()) {
       case GameEvent.KEY_PRESSED:
           // Användaren har tryckt ner en tangent
           keyPressed(event.getKey());
           break;
       case GameEvent.MOUSE_CLICKED:
           // Användaren har klickat med musen
           mouseClicked(event.getX(), event.getY());
           break;
       case GameEvent.TICK:
           // Det har gått ytterligare 100 millisekunder
           tick();
           break;
       }
   }
 

Ritoperationerna dokumenteras i se.lth.cs.pt.graphics-paketet.

Konstruktorer
GraphicsWindow  (double width, double height)
Skapar ett fönster med en given storlek.
Parametrar:
width:fönstrets bredd, i pixels.
height:fönstrets höjd, i pixels.
GraphicsWindow  (String imageName)
Skapar ett fönster med en given bakgrundsbild -- bilden måste ha något av formaten ".png", ".jpg" eller ".gif".
Parametrar:
imageName:namnet filen med bakgrundsbilden.
Metoder
GameEvent getNextEvent()
Ger nästa intressanta händelse som inträffar i fönstret -- händelserna beskrivs av klassen GameEvent. Vi markerar vilka händelser som är av intresse med hjälp av operationerna checkKeys, checkMouse och timeStep.
Returnerar nästa händelse som vi anmält intresse för.
void checkKeys(boolean checkKeyPressed, boolean checkKeyReleased, boolean checkKeyTyped)
Meddelar att vi är intresserade av olika slags tangentbordshändelser. Det finns tre olika slags tangentbordshändelser:
  • en tangent trycks ner
  • en tangent släpps upp
  • en fullbordad tangenttryckning (dvs både nedtryckning och släpp).
Parametrar:
checkKeyPressed:true om vi är intresserade av när en tangent trycks ner
checkKeyReleased:true om vi är intresserade av när en tangent släpps upp
checkKeyTyped:true om vi är intresserade av när en tangenttryckning fullbordats (ganska ovanligt)
void checkMouse(boolean checkMouseClicked, boolean checkMouseMoved, boolean checkMouseDragged, boolean checkMousePressed, boolean checkMouseReleased)
Meddelar att vi är intresserade av olika slags mushändelser. Det finns tre olika slags mushändelser:
  • användaren klickar på någon musknapp (dvs trycker ner och släpper upp igen i tät följd, på samma plats).
  • användaren flyttar musen utan någon musknapp nedtryckt
  • användaren flyttar musen med en musknapp nedtryckt
  • användaren trycker ner någon musknapp
  • användaren släpper upp någon musknapp
Parametrar:
checkMouseClicked:true om vi är intresserade av när användaren klickar
checkMouseMoved:true om vi är intresserade av när användaren flyttar musen
checkMouseDragged:true om vi är intresserade av när användaren drar musen med någon knapp nedtryckt
checkMousePressed:true om vi är intresserade av när användaren trycker ner någon musknapp
checkMouseReleased:true om vi är intresserade av när användaren släpper upp någon musknapp
void timeStep(int timeStep)
Startar en klocka som ger tidshändelser med jämna mellanrum.
Parametrar:
timeStep:antalet millisekunder mellan varje tidshändelse.
void pauseTimer()
Pausar tidshändelserna.
void resumeTimer()
Återupptar tidshändelserna med samma frekvens som tidigare.