Grille du demineur

Résolu
s.lht - Modifié le 1 janv. 2018 à 19:40
 S.lht - 4 janv. 2018 à 21:25
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

Merci d'y penser dans tes prochains messages.

2 réponses

Twinuts
Messages postés
5371
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
1 avril 2022
111
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...
1
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
0
jordane45
Messages postés
35455
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 mai 2022
356
1 janv. 2018 à 20:51
Bonjour,

j'ai un soucis dans mon code

Et quel est t'il ?

0
s.lht
Messages postés
2
Date d'inscription
lundi 1 janvier 2018
Statut
Membre
Dernière intervention
1 janvier 2018

Modifié le 1 janv. 2018 à 21:10
mon soucis est l'affichage
sa m'affiche plein de petit jpanel et pas sous la forme d'une grille
0
s.lht
Messages postés
2
Date d'inscription
lundi 1 janvier 2018
Statut
Membre
Dernière intervention
1 janvier 2018

1 janv. 2018 à 21:12
voila le resultat
0