Dessiner un cercle                        

Dessiner un cercle

           

Voici un programme qui utilise la classe CercleGraphique.
Remarquons que le fait que CercleGraphique implémente l'interface Tracable ne nous sert pour l'instant à rien. La méthode dessine aurait pu être utilisée de la même façon si CercleGraphique n'implémentait pas Tracable.

Nous ne donnons que quelques explications sur la partie graphique, ce sujet fait l'objet d'une autre section.


import java.awt.Graphics;
import java.awt.Dimension;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class PanneauCercle extends JPanel {
    private CercleGraphique c = new CercleGraphique(50, 100, 100, Color.red); 
    
    public PanneauCercle() {
	 setPreferredSize(new Dimension(200, 200));
    }

    public void paintComponent(Graphics g) {
	super.paintComponent(g);
	c.dessine(g);
    }
}

class EssaiCercleGraphique {
  public static void main(String[] arg) {
      JFrame monDessin = new JFrame("un cercle");

      monDessin.setContentPane(new PanneauCercle());
      monDessin.pack();
      monDessin.setVisible(true);
  }
}

Pour accéder à PanneauCercle.java.

On obtient à l'exécution la fenêtre ci-dessous :
 

Evidemment, c'est un peu rudimentaire...


JFrame : la classe javax.swing.JPanel représente un composant qui sert à faire du dessin ou bien à contenir des sous-composants.
JFrame : la classe javax.swing.Frame représente une fenêtre principale d'application, pouvant avoir un titre ou une barre de menus, changer de taille, se mettre sous forme d'icône. On peut aussi y recevoir des événements tels que des clics de la souris, on peut y mettre des éléments graphiques pour y personnaliser des zones, on peut ajouter des boutons... Mais on ne peut pas tout apprendre en un jour...
new CercleGraphique(50, 100, 100, Color.red); : on invoque le constructeur de la classe CercleGraphique.
c.dessine(g); : on utilise la méthode d'instance dessine de CercleGraphique.
setPreferredSize(new Dimension(200, 200)); : on demande à ce que le composant ait une dimension de 200 pixels sur 200 pixels.
monDessin.setContentPane(new PanneauCercle()); : on demande à ce que l'intérieur de la fenêtre soit une instance de la classe PanneauCercle.
monDessin.pack(); : on demande ainsi à ce que la fenêtre soit dimensionnée en fonction de ce qui est à l'intérieur. Sans cette instruction, la fenêtre serait minuscule.
monDessin.setVisible(true); : cette instruction est indispenable pour que la fenêtre soit visible. par défaut, elle est invisible.

© Irène Charon Télécom ParisTech 2010