1 pièce(s) jointe(s)
[GridLayout] Largeur de cellule et GIF
J'ai un problème avec un gridlayout. Je gère une grille, qui contient soit des males, soit des femelles, soit de la nourriture, soit rien. Ca ressemble vaguement à ça. La grille est en fait un Jpanel associé à un gridlayout, où chaque cellule contient un panel et un label.
http://www.developpez.net/forums/att...1&d=1174323272
Mes problèmes :
1. Je n'arrive pas à spécifier une largeur aux cellules telles que celles ci soient toujours carrées (de fait, avoir une largeur égale à la hauteur), il semble que le grid "remplisse" automatiquement la case
2. J'ai essayé d'afficher à la place des M ou F dans les cellules des petits GIF, mais ceux ci ne s'affichent pas, à la place, le panel s'affiche blanc.
Voici la méthode en question :
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
|
public void identifierContenuCase(int i,int j){
ImageIcon male=new ImageIcon("male.gif");
ImageIcon femelle=new ImageIcon("femelle.gif");
JLabel lmale = new JLabel(male);
JLabel lfemelle = new JLabel(femelle);
String t="";
p=new JPanel();
p.setSize(new Dimension(screenHeight,screenHeight));
l=new JLabel();
boolean pastexte=false;
if(la case ne contient ni amibe ni nourriture){
t=" "+". ";
p.setBackground(gris);
}
else
{
if(la case contient de la nourriture)
{
t=" "+grille.grille[i][j].nourriture.getNourriture();
p.setBackground(jaune);
}
else
{
pastexte=true;
if(c'est un garçon)
{
//t=" "+"M";
//p.setBackground(jaune);
l=lmale;
}
if(c'est une fille)
{
//t=" "+"F";
//p.setBackground(bleu);
l=lfemelle;
}
}
}
if(!pastexte){
l.setText(t);
l.setFont(f);
}
p.setBorder(BorderFactory.createLineBorder(blanc));
panelGrille.add(p);
p.add(l);
p.setVisible(true);
} |
Le code en commentaire est le code pour afficher la version textuelle.
Merci de votre aide.