Bonjour,
j'ai un soucis dans mon code
j'ai créer une classe Case qui herite de JPanel est qui ferra office de boutton du jeu démineur
et un JFrame Grille qui sera l'interface du jeu et en utilisant GridLayout
voici mon code :
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Case extends JPanel {
int posX;
int posY;
JLabel nombreMineProche;
boolean etat=false;
boolean drapeau=false;
public Case(int posX, int posY) {
this.posX = posX;
this.posY = posY;
this.setSize(200, 200);
this.setBackground(Color.blue);
}
}
public class Grille extends javax.swing.JFrame {
private int nombreLigne;
private int nombreColone;
private int nombreMine;
private int nombreCaseDecouverte;
JPanel pan ;
Case cass [][];
public Grille(int nombreLigne, int nombreColone, int nombreMine) {
this.nombreLigne = nombreLigne;
this.nombreColone = nombreColone;
this.nombreMine = nombreMine;
this.cas = new Case [400][400];
this.setSize(500, 500);
this.setLocation(100,100);
pan = new JPanel(new GridLayout(nombreLigne,nombreColone));
pan.setLayout(new FlowLayout());
getContentPane().add(pan);
for(int i=1 ; i<nombreLigne ; i++){
for(int j=1 ; j<nombreColone ; j++){
Case cass = new Case(i,j);
pan.add(cass);
}
}
EDIT : Ajout des balises de code (la coloration syntaxique). Explications disponibles ici : ICI
Twinuts
Messages postés5374Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention 3 mars 2023110 4 janv. 2018 à 19:49
Salut,
la ligne "pan.setLayout(new FlowLayout());" invalide ton GridLayout que tu spécifies dans le constructeur du JPanel "pan = new JPanel(new GridLayout(nombreLigne,nombreColone));" du coup le comportement que tu as est le comportement normal du FlowLayout...
C'est bon j'ai regler mon problème effectivement en enlevant le flowlayout et après quelque modification dans le constructer de la classe case :
Public case(int posX , int posY){
This.posX= posX;
This.posY=posY;
This.setBorder(new javax.swing.border.lineBOrder(color.BLACK,1,false);
}
Mon problème affichage c'est régler
Merci pour votre aide
4 janv. 2018 à 21:25
Public case(int posX , int posY){
This.posX= posX;
This.posY=posY;
This.setBorder(new javax.swing.border.lineBOrder(color.BLACK,1,false);
}
Mon problème affichage c'est régler
Merci pour votre aide