diff --git a/GameOfLifeGUI.java b/GameOfLifeGUI.java index c162ce018cddf7f4a3d1d1290a62d4525f4312d9..590140afb2e6c511f58b7a4e8e14f9802d3b8fe4 100644 --- a/GameOfLifeGUI.java +++ b/GameOfLifeGUI.java @@ -11,38 +11,53 @@ public class GameOfLifeGUI extends JFrame { private JPanel gridPanel; private JFrame frame; + public GameOfLifeGUI(Grid g) { - this.numberOfRows = g.getNumberOfRows(); - this.numberOfColumns = g.getNumberOfColumns(); - gridLayout = new GridLayout(numberOfRows, numberOfColumns); + 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++) + 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]); - } + labelGrid[x][y] = new JLabel("*"); + JLabel label = labelGrid[x][y]; + Cell cell = g.getCell(x,y); + if(cell.isAlive()) { + if (cell.isRed()) + label.setForeground(Color.red); + else + label.setForeground(Color.blue); + }else{ + label.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.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]; - if(g.getCell(x,y).isAlive()) - label.setForeground(Color.red); - else - label.setForeground(Color.white); - } + for (int x = 0; x < numberOfColumns; x++) { + for (int y = 0; y < numberOfRows; y++) { + JLabel label = labelGrid[x][y]; + Cell cell = g.getCell(x,y); + if(cell.isAlive()) { + if (cell.isRed()) + label.setForeground(Color.red); + else + label.setForeground(Color.blue); + }else { + label.setForeground(Color.white); + } + } + } } }