Bonjour,
je commence en java et j'essaie de créer un jeu de mémoire
pour le début, j'essaye avec un tableau de cartes de couleurs. Mon problème c'est je n'arrive pas à afficher les cartes crées, j'ai l'impression que la méthode paintComponent ne se fait pas appelée
voici mon code
classe CarteCouleur
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
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CarteCouleur extends Carte {
 
	private Color couleur;
	public CarteCouleur(Color c){
		super(true);
		couleur = c;
		repaint();
	}
	public void paintRecto(Graphics2D g){
		g.setColor(couleur);
		g.fillRect(0,0,this.getWidth(),this.getHeight());
 
	}
	public void paintComponent(Graphics2D g){
		//super.paintComponent(g);
		System.out.println("c bon");
		if(estMontree()){
			paintRecto(g);
 
		}
		else{
			paintVerso(g);
		}
 
	}
}
la classe panneauDeCartes
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
import java.io.*;
import java.net.URL;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class PanneauDeCartes extends JPanel implements MouseListener {
 
	private int nRangees, nColonnes, delai0, delai1;
 
	private ImageIcon image, dos;
 
	public PanneauDeCartes(int nRangees, int nColonnes, CarteCouleur[] cartes, int delai0, int delai1){
 
		GridLayout layout = new GridLayout(nRangees,nColonnes);
		layout.setHgap(10);
		layout.setVgap(10);
		setLayout(layout);
		//image = createImage("http://data.photos-animaux.com/photos/629/6287/800-1-628686.jpg");
		//dos = createImage("http://data.photos-animaux.com/photos/629/6288/1280-3-628724.jpg");
		for(int i =0;i<nRangees*nColonnes; i++){
			this.add(cartes[i]);
 
		}
 
	}
 
	public static ImageIcon createImage(String img_urlstring){
        URL img_url = null;
        try { img_url = new URL(img_urlstring); }
        catch(IOException e)
        { 
            try {img_url = new URL("https://"+"webtoolfeed.files.wordpress.com/2012/01/create-your-url1.jpg");}
            catch(IOException e2) {}
        }
        ImageIcon img_icon = new ImageIcon(img_url);
        return img_icon;
    }
	public void mouseClicked(MouseEvent e) {
 
	   }
 
	public void mouseEntered(MouseEvent e) {
 
	}
 
	public void mouseExited(MouseEvent e) {
 
	}
 
	public void mousePressed(MouseEvent e) {
 
	}
 
	public void mouseReleased(MouseEvent e) {
 
	}
}
et finalement la classe JeuMemory
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
import javax.swing.*;
import java.awt.*;
public class JeuMemory {
 
	public static void main(String[] args) {
		JFrame f = new JFrame("jeu de mémoire");
		CarteCouleur[] c = new CarteCouleur[8];
		c[0] = new CarteCouleur(Color.BLUE);
		c[1] = new CarteCouleur(Color.RED);
		c[2] = new CarteCouleur(Color.GREEN);
		c[3] = new CarteCouleur(Color.ORANGE);
		c[4] = new CarteCouleur(Color.YELLOW);
		c[5] = new CarteCouleur(Color.CYAN);
		c[6] = new CarteCouleur(Color.MAGENTA);
		c[7] = new CarteCouleur(Color.PINK);
 
		PanneauDeCartes p = new PanneauDeCartes(2,4,c,200,200);
		f.add(p);
		f.setSize(600,600);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setVisible(true);
		f.setLocationRelativeTo(null);
	}
 
}
merci d'avance