Skip to content
Snippets Groups Projects
GameOfLifeGUI.java 1.84 KiB
Newer Older
  • Learn to ignore specific revisions
  • Alexis Nasr's avatar
    Alexis Nasr committed
    import java.awt.*;
    import java.awt.Graphics;
    import javax.swing.*;
    
    public class GameOfLifeGUI extends JFrame {
        private int squareSize = 7;
        private int numberOfRows;
        private int numberOfColumns;
        private JLabel[][] labelGrid;
        private GridLayout gridLayout;
        private JPanel gridPanel;
        private JFrame frame;
        
        public GameOfLifeGUI(Grid g) {
    	this.numberOfRows = g.getNumberOfRows();
    	this.numberOfColumns = g.getNumberOfColumns();
    	gridLayout = new GridLayout(numberOfRows, numberOfColumns);
            gridPanel = new JPanel(gridLayout);
    	labelGrid = new JLabel[numberOfRows][numberOfColumns];
            for (int x = 0; x < numberOfColumns; x++)
                for (int y = 0; y < numberOfRows; y++){
    		labelGrid[x][y] = new JLabel("*");
    		JLabel label;
    		if(g.getCell(x,y).isAlive())
    		   labelGrid[x][y].setForeground(Color.red);
    		else
    		    labelGrid[x][y].setForeground(Color.white);
    		gridPanel.add(labelGrid[x][y]);
    	    }
            frame = new JFrame("Game of Life");
            frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
            frame.setContentPane(gridPanel);
    	frame.setSize(squareSize * numberOfRows, squareSize * numberOfColumns);
    	frame.setLocationByPlatform(true);
            frame.setVisible(true);
        }
    
        public void update(Grid g){
            for (int x = 0; x < numberOfColumns; x++)
                for (int y = 0; y < numberOfRows; y++){
    		JLabel label = labelGrid[x][y];
    
    Mathias's avatar
    Mathias committed
    		//On regarde ici si la cellule est vivante
    
    Mathias's avatar
    Mathias committed
    		if(g.getCell(x,y).isAlive()) {
    
    Mathias's avatar
    Mathias committed
    		    //On fonction de l'instance qui gère la couleur on change sa couleur sur la grille
    
    Mathias's avatar
    Mathias committed
                if ((g.getCell(x,y).getColor()).equals("Red")) {
                    label.setForeground(Color.red);
                } else {
                    label.setForeground(Color.blue);
                }
            }
    
    Mathias's avatar
    Mathias committed
    		//sinon on l'a met blanc
    
    Alexis Nasr's avatar
    Alexis Nasr committed
    		else
    		    label.setForeground(Color.white);
    	    }
        }
    }