next up previous contents index
suivant: A.2 Événements clavier monter: A. Bibliothèque graphique précédent: A. Bibliothèque graphique   Table des matières   Index

Sous-sections


A.1 Fonctionnalités

Pour pouvoir réaliser des dessins dans une fenêtre, on doit étendre la classe FenetreGraphique du paquet graphique. Cette classe permet d'ouvrir une fenêtre graphique composée de haut en bas d'une barre de menu (avec un menu Fichier), d'une zone de dessin et d'une ligne d'information (Cf. fig. [*]).

A.1.1 Initialisation

Cette classe fournit les constructeurs suivants :

  FenetreGraphique()
construit une fenêtre de taille $400 \times 300$, de fond blanc, localisée au centre de l'écran.

  FenetreGraphique(int w, int h)
idem que précédemment mais de taille $\texttt{w} \times \texttt{h}$.

  FenetreGraphique(int w, int h, Color c)
idem que précédemment mais avec une couleur de fond spécifiée par c.

A.1.2 Affichage / disparition de la fenêtre

  void ouvrir()
rend la fenêtre visible à l'écran

  void fermer()
fait disparaître la fenêtre de l'écran

A.1.3 Dessin

  void dessiner(Graphics2D g2)
Cette méthode, qui par défaut ne fait rien, est appelée quand une demande d'affichage de la zone de dessin a lieu.

Elle doit être redéfinie dans une extension de la classe FenetreGraphique. La re-définition de cette méthode doit contenir les instructions nécessaires à la réalisation du tracé qui apparaîtra dans la zone de dessin. Cette méthode possède un paramètre g2 appelé contexte graphique qui rassemble les attributs courants relatifs au tracé comme par exemple l'épaisseur du trait, la couleur de remplissage, etc.

  void re_dessiner()
provoque le ré-affichage du contenu de la fenêtre de dessin. La zone de dessin est effacée puis la méthode précédente est appelée. Cette méthode doit être appelée lorsque le dessin a changé.

A.1.4 Messages

  void informer(String s)
remplace le contenu actuel de la ligne d'information par la chaîne de caractères désignée par s.

A.1.5 Dimensions

  int getLargeur()
retourne la largeur en pixels de la zone de dessin.

  int getHauteur()
retourne la hauteur en pixels de la zone de dessin.


A.1.6 Chargement d'images

  Image chargerImage(String f)
retourne une image. Les données de l'images (pixels) sont chargées à partir du fichier dont le nom est passé en argument. Le format du fichier doit être GIF, JPEG ou PNG.

A.1.7 Exemple

    import java.awt.*;
    import graphique.FenetreGraphique;

    class Ex1 extends FenetreGraphique {
      Ex1 () {}
      Ex1 (int w, int h, Color c) {super(w,h,c);}

      public void dessiner(Graphics2D g2) {
        g2.setPaint(Color.red);
        g2.drawString("ENPC", 0, getHauteur());
      }
    }

    class Ex1Main {
      public static void main(String[] args) {
        FenetreGraphique fen = new Ex1();
        fen.ouvrir();
        fen.informer("Un premier exemple");
      }
    }

L'exécution de la classe Ex1Main provoque l'affichage de la fenêtre représentée figure [*].

Figure: Une fenêtre graphique
\begin{figure}\ \begin{center}
\epsfig{file=graphique.ps} \end{center}\end{figure}


A.1.8 Traitement d'événements clavier

Pour que les méthodes ci-dessous soient invoquées, la zone de dessin doit avoir été désignée (d'une manière qui dépend du gestionnaire de fenêtres) comme cible des événements clavier.

  public void keyTyped(KeyEvent e)
invoquée après qu'une touche associée à un caractère Unicode a été frappée. Par défaut, ne fait rien.

  public void keyPressed(KeyEvent e)
invoquée après qu'une touche a été enfoncée. Par défaut, ne fait rien.

  public void keyReleased(KeyEvent e)
invoquée après qu'une touche a été relâchée. Par défaut, ne fait rien.


A.1.9 Traitement d'événements souris

Pour que les méthodes ci-dessous soient invoquées, le pointeur de la souris doit se trouver dans la zone de dessin.

  public void mouseClicked(MouseEvent e)
invoquée après un clic sur un des boutons. Par défaut, ne fait rien.

  public void mousePressed(MouseEvent e)
invoquée après qu'un bouton a été enfoncé. Par défaut, ne fait rien.

  public void mouseReleased(MouseEvent e)
invoquée après qu'un bouton a été relâché. Par défaut, ne fait rien.

  public void mouseMoved(MouseEvent e)
invoquée en réponse à un déplacement de la souris, boutons relâchés. Par défaut, ne fait rien.

  public void mouseDragged(MouseEvent e)
invoquée en réponse à un déplacement de la souris avec un bouton enfoncé. Le pointeur peut quitter la zone de dessin pourvu que le bouton soit maintenu enfoncé. Par défaut, ne fait rien.


next up previous contents index
suivant: A.2 Événements clavier monter: A. Bibliothèque graphique précédent: A. Bibliothèque graphique   Table des matières   Index
Rene' LALEMENT 2001-11-07