public JWindow() {
        // titre de la fentre
        super("Snake 0.1");
        // crer le modle du jeu
        this.modele = new Core();
        // fermeture de l'application lorsque la fentre est ferme
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        // pas de redimensionnement possible de la fentre
        setResizable(false);
        // crer un conteneur qui affichera le jeu
        final JPanel content = new JPanel() {
              @Override
              protected void paintComponent(Graphics g) {
                    super.paintComponent(g);
                    // affichage du modle du jeu
                    JWindow.this.modele.display(g);
              }
        };
        // dimension de ce conteneur 
        content.setPreferredSize(new Dimension(
        		NB_COLONNES * CASE_PIXELS,
        		NB_LIGNES * CASE_PIXELS));
        // ajouter le conteneur  la fentre
        setContentPane(content);
        // Crer un thread infini
        Thread thread = new Thread(new Runnable() {
              @Override
              public void run() {
                    while (true) { // boucle infinie
                    	//  chaque fois que la boucle est excute, la
                        // mthode de calcul du jeu est appele.
                        // Comme la boucle est infinie, la mthode de calcul
                        // sera appele en cycle perptuel.
                        JWindow.this.modele.calcul();
                        // demander  l'EDT (Event Dispatch Thread) de redessiner le conteneur
                        content.repaint();
                        // temporisation pour une bonne perseption (calcul+affichage toute les demi-secondes)
                        try {
                              Thread.sleep(500);
                        } catch (InterruptedException e){}
                    
                    }
              }
        });
        // le listener grant les entres au clavier
        content.addKeyListener(new KeyAdapter() {
              @Override
              public void keyPressed(KeyEvent e) {
                    JWindow.this.modele.KeyboardGestion(e);
              }
        });
        // s'assurer du focus pour le listener clavier
        setFocusable(false);
        content.setFocusable(true);
        // lancer le thread
        thread.start();
  }