Bonjour a tous et bonne année 2017, avec pleins de projets, informatiques ou autres...

Je continue ma formation et j'ai pris comme exercice de faire l'histogramme qui est proposé sur ce site. Je n'ai pas envie de regarder le corrigé donc je vais poser mes questions ici.

J'ai fait une classe Baton2D avec une méthode afficher(graphics g) et une classe RepereOrtho qui a aussi une méthode afficher(graphics g). L'argument est passé par la méthode paint de mon Jpanel.

Voilà mon code qui devrait marcher et qui ne trace rien, j'ai donc des instructions qui ne font rien, pas d'erreur mais pas de trace, c'est usant, je ne sais pas dans quel sens chercher. Donc voilà
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import java.awt.Color;
import java.awt.Graphics;
import java.util.ArrayList;

import javax.swing.JFrame;
import javax.swing.JPanel;


public class Histogramme extends JPanel {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private static int LARGEUR = 600 ;
    private static int HAUTEUR = 400 ;
    ArrayList<Baton2D> mesbatons = new ArrayList<Baton2D>() ;
    
    Baton2D baton = new Baton2D(12,10,Color.RED) ;
    RepereOrtho repere = new RepereOrtho(5,HAUTEUR-5,LARGEUR,HAUTEUR);
    
    public void paint(Graphics g) {
        super.paint(g);
        repere.afficher(g);
    }
    //mesbatons.add(baton) ;  // Alors pourquoi j'ai pas le droit de le faire ?
    
    
    public static void main(String[] args) {
        JFrame mafenetre = new JFrame("Histogramme") ;
         
        JPanel panneau = new JPanel();        
        mafenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         
        
        
        panneau.setBackground(Color.WHITE) ; // Pourquoi le fond ne passe pas en blanc ?
        mafenetre.setLocation(200, 200);
        mafenetre.setSize(LARGEUR,HAUTEUR);
        Histogramme histo = new Histogramme() ;  // et pourquoi y a rien qui s'afficher
        
        mafenetre.setVisible(true);
    }
}
class RepereOrtho {
    private int Xorig,Yorig ;
    private int larg,haut ;
    RepereOrtho(int Xo,int Yo, int largeur,int hauteur){
        this.Xorig = Xo ;
        this.Yorig = Yo ;
        this.larg = largeur ;
        this.haut = hauteur ;
    }
    void afficher(Graphics g) {
        g.setColor(Color.BLACK);
        //g.drawLine(Xorig, Yorig, Xorig, larg);
        //g.drawLine(Xorig, Yorig, haut, Yorig);
        g.drawLine(10, 10, 100, 100) ;
        System.out.println("ici");
    }
}
class Baton2D {
    private int taille, largeur ;
    private Color couleur ;
    Baton2D (int taille, int largeur,Color couleur) {
        this.taille = taille ;
        this.largeur = largeur ;
        this.couleur = couleur ;
    }
    int getTaille() {
        return this.taille ;
    }
    int getlargeur() {
        return this.largeur ;
    }
    Color getcouleur() {
        return this.couleur ;
    }
    void afficher(Graphics g) {
        g.setColor(couleur);
        g.fillRect(0, 0, 10, 50) ;
    }
}
Merci d'avance !!!