Bon, j'ai plus ou moins contourné mon problème, mais un nouveau arrive : je me rend compte que je ne comprends rien au paint/repaint!
voici mon code: (les parties utilisés ici)
public class Panneau extends JPanel{
private Image image[] = new Image[Texture.NB_IMAGE];
private Map carte;
private int i = 0;
public Panneau(Map carte){
this.carte = carte;
image[Texture.VIDE] = Toolkit.getDefaultToolkit().getImage("vide.png");
image[Texture.MUR] = Toolkit.getDefaultToolkit().getImage("mur.png");
if(i == 0){
repaint();
i=1;
}
}
public void paintComponent(Graphics g){
for(int i = 0; i < Map.HAUTEUR_CARTE; i++){
for(int j = 0; j < Map.LARGEUR_CARTE; j++){
g.drawImage(image[carte.getElementCarte(i, j).getTexture()], j*Map.TAILLE_CASE, i*Map.TAILLE_CASE, Map.TAILLE_CASE, Map.TAILLE_CASE, this);
}
}
}
}
public class IHMJeu extends JFrame{
private Image image[] = new Image[Texture.NB_IMAGE];
public IHMJeu(String title, Map carte){
super(title);
image[Texture.VIDE] = Toolkit.getDefaultToolkit().getImage("vide.png");
image[Texture.MUR] = Toolkit.getDefaultToolkit().getImage("mur.png");
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
Toolkit aTK = Toolkit.getDefaultToolkit();
Dimension dim = aTK.getScreenSize();
this.initialise(carte);
this.setBounds((dim.width-Map.LARGEUR_CARTE*Map.TAILLE_CASE)/2, (dim.height-Map.HAUTEUR_CARTE*Map.TAILLE_CASE)/2, Map.LARGEUR_CARTE*Map.TAILLE_CASE, Map.HAUTEUR_CARTE*Map.TAILLE_CASE);
this.setVisible(true);
}
public void initialise(Map carte){
Container c = this.getContentPane();
Panneau pCentre = new Panneau(carte);
c.add(pCentre, BorderLayout.CENTER);
}
}
public class Main {
public static void main(String[] args) {
Map test = new Map();
new IHMJeu("test", test);
}
}
La fenêtre affiché est complètement vide! Hormis pour ce qui est du titre. Quelqu'un s'aurait-il me dire pourquoi? Il n'y a aucun warning ni message d'erreur. 