paintComponent n'affiche rien
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:
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:
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:
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