[JAVA] - Tableau de JPanels
Bonjour et bonne année à tous ;)
Je souhaite développer un petit jeu, un mastermind en fait, et je dois donc afficher 10 lignes de 4 pions pour les essais du joueur.
Mon problème c'est justement de les afficher !
Je me suis limité pour l'instant à l'affichage des 'trous' vides dans lesquels le joueur placera par la suite ses pions.
Voici les démarches que j'ai effectués :
- Affichage dans un JPanel de la même image représentant un trou.
Problème : Seul la dernière image est affichée.
- J'ai donc pensé à faire un tableau de JPanels, en fait afficher une seule image dans un seul panel, et crée 10x4 panels...
Problème : Déjà ça ne fonctionne pas, le code ne contient pas d'erreurs mais me génère une erreur "java.lang.NullPointerException". En plus, cette méthode me semble être assez lourde vu le nombre de panels à créer (surtout qu'il y aura d'autres panels à créer par la suite).
- Ayant besoin de localiser mes images afin de pouvoir les remplacer par la couleur choisie par le joueur, il faut tout de même que je puisse localiser mes pions. Il faudrait donc un tableau d'images que je collerai sur mon panel.
Problème : Je ne sais pas trop comment écrire ça, je n'arrive pas à trouver de solution ni sur le net, ni sur la javadoc. J'ai bidouillé un peu dans mon coin mais j'obtiens la même erreur à l'execution du prog : "java.lang.NullPointerException".
Voici le code de mon initialisation :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| public void init(){
int posX=-35;
int posY=-35;
for(int j=0; j<10; j++)
{
for(int i=0; i<10; i++)
{
pionsBlank.setBounds(posX+35,posY+35,30,30);
tabPionsEssai[i][j].add(pionsBlank);
panePrincipal.add(tabPionsEssai[i][j]);
posX=+35;
}
posY=+35;
j=+1;
}
} |
en sachant que j'ai déclaré ceci :
Code:
1 2 3 4 5 6
|
String imgBlank = ".\\Jeux\\mastermind resources\\Blank.png";
Affichage pionsBlank = new Affichage(imgBlank);
JPanel tabPionsEssai[][]={null}; |
et ma classe Affichage :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| public class Affichage extends Canvas{
private static final long serialVersionUID = 1L;
Image img;
public Affichage(String imageLink){
img=getToolkit().getImage(imageLink);
prepareImage(img,this);
}
public void paint(Graphics g){
g.drawImage(img, 0, 0, this);
}
} |
Voilà, si quelqu'un avait une idée sur comment palier mon problème.
Déjà je pense qu'un tableau d'images serait mieux qu'un tableau de JPanel ^_^
Merci d'avance ;)