public JWindow() {
		super("Snake 0.2");							// Titre de la fentre
		this.modele = new Core();					// crer le modle du jeu

		
		setDefaultCloseOperation(EXIT_ON_CLOSE); 	// fermeture de l'application lorsque la fentre est ferme
		setResizable(false);						// pas de redimensionnement possible de la fentre
		content = new JPanel() {		// crer un conteneur qui affichera le jeu
			@Override 
			protected void paintComponent(Graphics g) {
				super.paintComponent(g);			
				JWindow.this.modele.display(g);		// affichage du modle du jeu
			}
		};	
		//setContentPane(content);					// ajouter le conteneur  la fentre
		getContentPane().add(content, BorderLayout.CENTER);
		content.setPreferredSize(new Dimension(		// dimension de ce conteneur
				NB_COLONNES * CASE_PIXELS,NB_LIGNES * CASE_PIXELS));
		
		jPanel1 = new JPanel(){
		protected void paintComponent(Graphics g) {
			super.paintComponent(g);			
			JWindow.this.modele.display2(g);		// affichage du modle du jeu
		}
	};
		
		//setContentPane(jPanel1);
		getContentPane().add(jPanel1, BorderLayout.NORTH);
		jPanel1.setPreferredSize(new Dimension(NB_COLONNES * CASE_PIXELS, 30));

		Thread thread = new Thread(new Runnable() {	// Crer un thread infini
			@Override
			public void run() {
				while (true) { 						/* boucle infinie
													    chaque fois que la boucle est excute, la */
					JWindow.this.modele.calcul();		/* mthode de calcul du jeu est appele.
													   Comme la boucle est infinie, la mthode de calcul
													   sera appele en cycle perptuel. */


					content.repaint();				// demander  l'EDT (Event Dispatch Thread) de redessiner le conteneur
					jPanel1.repaint();

					try {							// temporisation pour une bonne perception (calcul+affichage toute les demi-secondes)
						Thread.sleep(JWindow.this.modele.changerNiveau());
					} catch (InterruptedException e){}

				}
			}
		});

		content.addKeyListener(new KeyAdapter() {	// le listener grant les entres au clavier
			@Override
			public void keyPressed(KeyEvent e) {
				JWindow.this.modele.KeyboardGestion(e);
			}
		});

		setFocusable(false);						// s'assurer du focus pour le listener clavier
		content.setFocusable(true);
		thread.start();								// lancer le thread
	}