Package graphics

Class OceanCanvas

All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, OceanReporter
Direct Known Subclasses:
BasicOceanCanvas

public abstract class OceanCanvas extends Canvas implements OceanReporter
Fournit un rapporteur (voir l'interface OceanReporter) qui peint l'océan dans une fenêtre utilisant java.awt.Frame.
See Also:
  • Field Details

    • serialVersionUID

      protected static final long serialVersionUID
      See Also:
    • frame

      protected final Frame frame
      La fenêtre où l'océan sera peint
    • ocean

      protected Ocean ocean
      Référence vers l'océan à peindre
    • cellSize

      protected final int cellSize
      La taille d'une cellule de l'océan (son sens précis dépend du maillage)
  • Constructor Details

    • OceanCanvas

      public OceanCanvas(String title, int cellSize)
      Crée un canevas et une fenêtre pour afficher le labyrinthe dedans
      Parameters:
      title - texte à afficher dans la barre de titre de à la fenêtre
      cellSize - la taille d'une cellule
    • OceanCanvas

      public OceanCanvas(String title)
      Crée un canevas en utilisant la taille de cellule par défaut (10 points)
      Parameters:
      title - texte à afficher dans la barre de titre de à la fenêtre
  • Method Details

    • computeSizeX

      protected abstract int computeSizeX()
      Calcule la largeur du canevas nécessaire pour que l'océan y tienne
      Returns:
      la largeur du canevas en pixels
    • computeSizeY

      protected abstract int computeSizeY()
      Calcule la hauteur du canevas nécessaire pour que l'océan y tienne
      Returns:
      la hauteur du canevas en pixels
    • initialise

      public void initialise(Ocean ocean)
      Définit la taille de la fenêtre en fonction de celle de l'océan
      Specified by:
      initialise in interface OceanReporter
      Parameters:
      ocean - la référence de l'océan qui sera exploré
    • report

      public void report(Coordinate current, Mark old)
      Rafraîchit la fenêtre lorsque le marquage de l'océan évolue
      Specified by:
      report in interface OceanReporter
      Parameters:
      current - non utilisé
      old - non utilisés
    • finish

      public void finish()
      Attend une seconde
      Specified by:
      finish in interface OceanReporter
    • update

      public void update(Graphics g)
      Replique le comportement de Canvas.update(Graphics g) sans effacer avant pour eviter que l'image ne clignote lors d'un rafraichissement de la fenêtre
      Overrides:
      update in class Canvas
    • colorFromMark

      protected Color colorFromMark(int mark)
      Méthode auxiliaire

      Convertit la valeur d'une marque dans une couleur pour l'affichage graphique

      Parameters:
      mark - la valeur à convertir
      Returns:
      la couleur correspondante
    • drawCell

      protected abstract void drawCell(Graphics g, int x, int y, int size)
      Méthode auxiliaire pour dessiner une cellule
      Parameters:
      g - contexte graphique
      x - coordonnée x du point de référence
      y - coordonnée y du point de référence
      size - parametre définissant la taille de la cellule (l'utilisation peut varier en fonction de la forme de la cellule)
    • drawMark

      protected abstract void drawMark(Graphics g, int x, int y, int size)
      Méthode auxiliaire pour dessiner une marque
      Parameters:
      g - contexte graphique
      x - coordonnée x du point de référence
      y - coordonnée y du point de référence
      size - parametre définissant la taille de la cellule (l'utilisation peut varier en fonction de la forme de la cellule)
    • paint

      public void paint(Graphics g)
      Peint l'océan dans la fenêtre
      Overrides:
      paint in class Canvas
      Parameters:
      g - the specified Graphics context
    • slow

      public static void slow(int duration)
      Méthode auxiliaire pour ralentir l'exploration afin qu'elle soit observable à l'œil
      Parameters:
      duration - nombre de millisecondes à atteindre
    • slow

      public static void slow()
      Méthode auxiliaire pour ralentir l'exploration de 10 millisecondes
    • notifySuspension

      public boolean notifySuspension()
      Description copied from interface: OceanReporter
      Appelée lorsque quelqu'un tente de désactiver le rapporteur
      Specified by:
      notifySuspension in interface OceanReporter
      Returns:
      true si la désactivation est acceptée
    • cancelSuspension

      public void cancelSuspension()
      Description copied from interface: OceanReporter
      Appelée lorsque la désactivation est annulée par un des rapporteurs
      Specified by:
      cancelSuspension in interface OceanReporter
    • notifyActivation

      public boolean notifyActivation()
      Description copied from interface: OceanReporter
      Appelée lorsque quelqu'un tente d'activer le rapporteur
      Specified by:
      notifyActivation in interface OceanReporter
      Returns:
      true si l'activation est acceptée
    • cancelActivation

      public void cancelActivation()
      Description copied from interface: OceanReporter
      Appelée lorsque l'activation est annulée par un des rapporteurs
      Specified by:
      cancelActivation in interface OceanReporter