Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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];
if(g.getCell(x,y).isAlive()) {
if ((g.getCell(x,y).getColor()).equals("Red")) {
label.setForeground(Color.red); }
else {
label.setForeground(Color.blue);} }
else {
label.setForeground(Color.white);}