Sommaire

Solutions des exercices

1. Exercice 3.3.1 : Afficher du texte avec la façade

En ce qui concerne la façade elle-même, il suffit d’ajouter la méthode drawString() proposée à l’interface GUIFacade. Pour l’implantation en AWT, une version qui dispose d’un attribut Graphics est suffisante, par exemple.

images/03RI041.png

La fonctionnalité réside entièrement dans la méthode drawString() :

public void drawString(String text,int x, int y, int width, int height) { 
   graphics.setFont(new Font("Arial",Font.PLAIN,44)); 
   graphics.setColor(Color.white); 
   FontMetrics fm = graphics.getFontMetrics(); 
   int textWidth = fm.stringWidth(text); 
   int textHeight = fm.getHeight(); 
   graphics.drawString(text, x + (width-textWidth)/2, y + 
(height-textHeight)/2); 
}

Cette méthode utilise des outils standards de la bibliothèque AWT, dont les FontMetrics, qui permettent de calculer la taille de rendu d’une chaîne de caractères.

Pour afficher un texte centré, on utilise cette nouvelle méthode entre les appels à beginPaint() et endPaint() de la façade :

public void render() { 
   if (!gui.beginPaint()) 
       return; 
   try { 
       gui.clearBackground(); 
 
       gui.drawString("Bienvenue", 0, 0, 800, ...